Подтвердить что ты не робот

Каков наилучший способ перебора нескольких списков одновременно?

Скажем, у меня есть два или более списков одинаковой длины. Какой хороший способ пронести через них?

a, b - это списки.

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

или

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

или есть ли какой-нибудь вариант, который мне не хватает?

Есть ли особые преимущества использования одного над другим?

4b9b3361

Ответ 1

Обычный способ - использовать zip():

for x, y in zip(a, b):
    # x is from a, y is from b

Это прекратится, когда короче из двух итераций a и b будут исчерпаны. Также стоит отметить: itertools.izip() (только Python 2) и itertools.izip_longest() (itertools.zip_longest() в Python 3).

Ответ 2

Вы можете использовать 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