200 votes

Appeler fonction int() sur chaque élément de liste en Python

J’ai une liste avec les chaînes numériques, comme suit :

Je voudrais convertir chaque élément de la liste en entier, donc il ressemblerait à ceci :

Je pouvais le faire à l’aide d’une boucle, comme suit :

Doit-il être si laid ? Je ne sais pas il y a un moyen plus Pythonique faire cela dans une ligne de code. S’il vous plaît aidez-moi.

392voto

adamk Points 9991

C’est ce que sont les compréhensions de liste pour :

145voto

Mark Byers Points 318575

En Python 2.x une autre approche consiste à utiliser `` :

Remarque : En Python 3.x `` retourne un objet de la carte que vous pouvez convertir une liste si vous voulez :

25voto

renatopp Points 562

juste un point,

de cette façon est plus naturelle pour nous, alors que

est plus rapide.

Sans doute cela ne comptera pas dans la plupart des cas

9voto

Tim McNamara Points 6478

Si vous avez l'intention sur le passage de ces entiers à une fonction ou une méthode, considérons l'exemple suivant:

sum(int(x) for x in numbers)

Cette construction est intentionnellement remarquablement similaire aux interprétations de la liste mentionnée par adamk. Sans les crochets, ça s'appelle un generator expression, et est une mémoire très efficace de transmettre une liste d'arguments de la méthode. Une bonne discussion est disponible ici: http://stackoverflow.com/questions/47789/generator-expressions-vs-list-comprehension

3voto

Nick Dandoulakis Points 26809

Autrement,

 for i, v in enumerate(numbers): numbers[i] = int(v)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X