90

同じ長さの 2 つのリストを同時に列挙するにはどうすればよいですか? 次のことを行うには、よりPython的な方法が必要だと確信しています。

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

for ループ内で index と data1[index] および data2[index] を使用したい。

4

6 に答える 6

181

zipPython2 と Python3 の両方に使用します。

for index, (value1, value2) in enumerate(zip(data1, data2)):
    print(index, value1 + value2)  # for Python 2 use: `print index, value1 + value2` (no braces)

2 つのリストの短い方までしか実行されないことに注意してくださいzip(長さが等しいリストでは問題ありません)。しかし、長さが等しくないリストの場合、リスト全体をトラバースしたい場合は、 を使用しますitertools.izip_longest

于 2013-05-01T21:31:20.590 に答える
8
from itertools import count

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

ソース: http://www.saltycrane.com/blog/2008/04/how-to-use-pythons-enumerate-and-zip-to/#c2603

于 2016-07-04T09:55:50.360 に答える
0

使用したいとしますzip

   >>> for x in zip([1,2], [3,4]):
    ...     print x
    ... 
    (1, 3)
    (2, 4)
于 2013-05-01T21:31:33.453 に答える