chart - Python-transformación de lista
python pyplot title (7)
Desea utilizar la función de map
incorporada:
>>> x = [1,2,3,4,5]
>>> x
[1, 2, 3, 4, 5]
>>> y = map(str, x)
>>> y
[''1'', ''2'', ''3'', ''4'', ''5'']
EDITAR Usted cambió los requisitos en mí! Para hacer que muestre los ceros iniciales, haz esto:
>>> x = [1,2,3,4,5,11]
>>> y = ["%02d" % v for v in x]
>>> y
[''01'', ''02'', ''03'', ''04'', ''05'', ''11'']
¿Alguien sabe qué magia tengo que usar para cambiar la lista x:
x = [1,2,3,4,5,11]
en y lista?
y = [''01'', ''02'', ''03'', ''04'', ''05'', ''11'']
Gracias de antemano por ayudarme ...
Prueba esto:
>>> [str(v).rjust(2,''0'') for v in x]
[''01'', ''02'', ''03'', ''04'', ''05'', ''11'']
rjust como método de clase de cadena, toma un argumento entero (longitud del resultado) y un carácter de relleno opcional
Puedes usar una lista de comprensión (Python 2.6+):
y = ["{0:0>2}".format(v) for v in x]
O para Python antes de 2.6:
y = ["%02d" % v for v in x]
Edición: se perdió el hecho de que querías cero relleno ...
Una alternativa al formato de cadenas sería utilizar el método zfill () de la cadena:
y = [str(i).zfill(2) for i in x]
Otra cosa: podría estar después del relleno basado en el elemento más grande de la lista, así que en lugar de solo usar 2, podría hacer:
pad_length = len(str(max(x)))
y = [str(i).zfill(pad_length) for i in x]
Yo mismo usaría una lista de comprensión, pero aquí hay otra solución que usa el mapa para aquellos interesados ...
map(lambda v: "%02d" %v, x)
para obtener los 0''s:
y = [''%02d'' % i for i in x]
y = [''%02d''%v for v in x]