同じ長さの 2 つのリストを同時に列挙するにはどうすればよいですか? 次のことを行うには、よりPython的な方法が必要だと確信しています。
for index, value1 in enumerate(data1):
print index, value1 + data2[index]
for ループ内で index と data1[index] および data2[index] を使用したい。
zip
Python2 と 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
。
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
使用したいとしますzip
:
>>> for x in zip([1,2], [3,4]):
... print x
...
(1, 3)
(2, 4)