66

同じ長さのリストが 2 つ以上あるとします。それらを反復する良い方法は何ですか?

abリストです。

 for i, ele in enumerate(a):
    print ele, b[i]

また

for i in range(len(a)):
   print a[i], b[i]

または、私が見逃しているバリアントはありますか?

あるものを他のものよりも使用することの特定の利点はありますか?

4

2 に答える 2

135

通常の方法は、次を使用すること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 の場合)。

于 2012-04-09T21:55:56.903 に答える
15

使用できます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
于 2012-04-09T21:57:40.647 に答える