Quelqu'un sait quelle magie je dois utiliser pour modifier la liste des x:Python - transformation Liste
x = [1,2,3,4,5,11]
en y liste?
y = [ '01', '02', '03', '04', '05', '11']
Merci à tous à l'avance pour me aider ...
Quelqu'un sait quelle magie je dois utiliser pour modifier la liste des x:Python - transformation Liste
x = [1,2,3,4,5,11]
en y liste?
y = [ '01', '02', '03', '04', '05', '11']
Merci à tous à l'avance pour me aider ...
Vous pouvez utiliser une compréhension de la liste (Python 2.6+):
y = ["{0:0>2}".format(v) for v in x]
Ou pour Python avant 2.6:
y = ["%02d" % v for v in x]
Modifier: Manqué le fait que vous vouliez zéro-padding ...
Vous souhaitez utiliser le haut-map
fonction:
>>> x = [1,2,3,4,5]
>>> x
[1, 2, 3, 4, 5]
>>> y = map(str, x)
>>> y
['1', '2', '3', '4', '5']
EDIT Vous avez changé les exigences sur moi! Pour faire afficher des zéros à gauche, vous faites ceci:
>>> x = [1,2,3,4,5,11]
>>> y = ["%02d" % v for v in x]
>>> y
['01', '02', '03', '04', '05', '11']
que point-virgule me regarde! arrête ça! –
Whooops! Les vieilles habitudes ont la vie dure. –
Et si je voudrais ajouter zéro si le chiffre est un chiffre et que je veux que mes chiffres soient à 2 chiffres chacun? – elfuego1
pour obtenir les 0:
y = ['%02d' % i for i in x]
y = ['%02d'%v for v in x]
J'utiliseriez une compréhension liste moi-même, mais voici une autre solution en utilisant la carte pour les personnes intéressées ...
map(lambda v: "%02d" %v, x)
Une alternative aux chaînes de format serait d'utiliser la zfill de la chaîne () méthode:
y = [str(i).zfill(2) for i in x]
Une autre chose: vous pourriez être après un rembourrage sur la base du plus grand élément de la liste, au lieu d'utiliser 2, vous pouvez faire:
pad_length = len(str(max(x)))
y = [str(i).zfill(pad_length) for i in x]
Essayez ceci:
>>> [str(v).rjust(2,'0') for v in x]
['01', '02', '03', '04', '05', '11']
rjust comme méthode de classe de chaîne, prend un argument entier (longueur de résultat) et un caractère de remplissage en option
Intéressant, je n'ai pas entendu parler de cette syntaxe "{0: 0> 2}". Est-ce couvert par un PEP ou un autre document? – Rodrigo
C'est une nouvelle syntaxe censée remplacer (progressivement) la syntaxe%. C'est en fait très agréable pour certaines choses, et je me suis fait un devoir de l'utiliser dans mon code, mais cela me semble toujours bizarre après avoir longtemps utilisé%. Plus d'infos ici: http://docs.python.org/library/string.html#formatstrings – DNS