66 votes

Quelle est la meilleure façon d'itérer sur plusieurs listes à la fois ?

Disons que j'ai deux ou plusieurs listes de même longueur. Quelle est la meilleure façon de les parcourir ?

a , b sont les listes.

 for i, ele in enumerate(a):
    print ele, b[i]

ou

for i in range(len(a)):
   print a[i], b[i]

ou y a-t-il une variante qui m'échappe ?

Y a-t-il des avantages particuliers à utiliser l'un plutôt que l'autre ?

135voto

Sven Marnach Points 133943

La méthode habituelle consiste à utiliser zip() :

for x, y in zip(a, b):
    # x is from a, y is from b

Cette opération s'arrêtera lorsque la plus courte des deux variables itératives a y b est épuisé. A noter également : itertools.izip() (Python 2 uniquement) et itertools.izip_longest() ( itertools.zip_longest() dans Python 3).

15voto

Rachel Shallit Points 1274

Vous pouvez utiliser zip :

>>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> for x, y in zip(a, b):
...   print x, y
... 
1 a
2 b
3 c

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