Comment énumérer deux listes de longueur égale simultanément? Je suis sûr qu'il doit exister une méthode plus pythonique pour effectuer les opérations suivantes:
for index, value1 in enumerate(data1):
print index, value1 + data2[index]
Je veux utiliser l'index et data1 [index] et data2 [index] à l'intérieur de la boucle for.
Utilisez Zip
:
for index, (value1, value2) in enumerate(Zip(data1, data2)):
print index, value1 + value2
Notez que Zip
ne fonctionne que jusqu’à la plus courte des deux listes (ce qui ne pose pas de problème pour les listes de longueurs égales), mais si vous souhaitez parcourir des listes de longueurs inégales, utilisez itertools.izip_longest
.
for i, (x, y) in enumerate(Zip(data1, data2)):
Dans Python 2.x, vous pouvez utiliser itertools.izip
au lieu de Zip
, esp. pour de très longues listes.
from itertools import count
for index, value1, value2 in Zip(count(), data1, data2):
print(index, value1, value2)
Source: http://www.saltycrane.com/blog/2008/04/how-to-use-pythons-enumerate-and-Zip-to/#c2603
Comme il a été mentionné que les longueurs sont égales,
for l in range(0, len(a)):
print a[l], b[l]
Bien que ce que vous recherchez ne soit pas très clair,
>>> data1 = [3,4,5,7]
>>> data2 = [4,6,8,9]
>>> for index, value in enumerate(Zip(data1, data2)):
print index, value[0]+value[1]
0 7
1 10
2 13
3 16
Supposons que vous souhaitiez utiliser Zip
:
>>> for x in Zip([1,2], [3,4]):
... print x
...
(1, 3)
(2, 4)