同じ長さのリストが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つのイテラブルa
の短縮とb
が消耗しているとき、これが停止します。また注目すべき点は、itertools.izip()
(Python 2のみ)とitertools.izip_longest()
(Python 3ではitertools.zip_longest()
)です。
あなたは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
はそれを私にビート。 Python 3の 'zip' *が*' izip'であることは注目に値するかもしれません。また、 'zip_longest'はありませんが、' map(None、a、b) 'はできます。 – ephemient
@ephemient:後者はPython 2でしかありません。 Python 3では、これは最短のシーケンスで停止します。そして 'izip_longest()'はPython 3で 'zip_longest()'と呼ばれています... –