it-swarm.com.de

Aufzählen von zwei Python-Listen gleichzeitig?

Wie zähle ich zwei Listen mit gleicher Länge gleichzeitig auf?

for index, value1 in enumerate(data1):
    print index, value1 + data2[index]

Ich möchte den Index und data1 [index] und data2 [index] innerhalb der for-Schleife verwenden.

30

Verwenden Sie Zip :

for index, (value1, value2) in enumerate(Zip(data1, data2)):
    print index, value1 + value2

Beachten Sie, dass Zip nur bis zur kürzeren der beiden Listen ausgeführt wird (kein Problem für Listen gleicher Länge). Wenn Sie jedoch Listen mit ungleicher Länge verwenden, wenn Sie die gesamte Liste durchlaufen möchten, verwenden Sie itertools.izip_longest .

70
for i, (x, y) in enumerate(Zip(data1, data2)):

In Python 2.x möchten Sie itertools.izip anstelle von Zip, esp verwenden. für sehr lange Listen.

10
Fred Foo
from itertools import count

for index, value1, value2 in Zip(count(), data1, data2):
    print(index, value1, value2)

Quelle: http://www.saltycrane.com/blog/2008/04/how-to-use-pythons-enumerate-and-Zip-to/#c2603

1
Marco Sulla

Da erwähnt wurde, dass die Länge gleich ist,

for l in range(0, len(a)):
   print a[l], b[l]
1
SuperNova

Obwohl dies nicht sehr klar ist, wonach Sie suchen,

>>> 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
0
octoback

Angenommen, Sie möchten Zip verwenden:

   >>> for x in Zip([1,2], [3,4]):
    ...     print x
    ... 
    (1, 3)
    (2, 4)
0
ddzialak