同じ長さのリストが 2 つ以上あるとします。それらを反復する良い方法は何ですか?
a
、b
リストです。
for i, ele in enumerate(a):
print ele, b[i]
また
for i in range(len(a)):
print a[i], b[i]
または、私が見逃しているバリアントはありますか?
あるものを他のものよりも使用することの特定の利点はありますか?
同じ長さのリストが 2 つ以上あるとします。それらを反復する良い方法は何ですか?
a
、b
リストです。
for i, ele in enumerate(a):
print ele, b[i]
また
for i in range(len(a)):
print a[i], b[i]
または、私が見逃しているバリアントはありますか?
あるものを他のものよりも使用することの特定の利点はありますか?
通常の方法は、次を使用することzip()
です。
for x, y in zip(a, b):
# x is from a, y is from b
これは、2 つの iterable のうち短い方が使い果たされるa
と停止します。b
また、注目に値する: itertools.izip()
(Python 2 のみ) およびitertools.izip_longest()
( itertools.zip_longest()
Python 3 の場合)。
使用できます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