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

Перечислять два списка python одновременно?

Как перечислить два списка одинаковой длины одновременно? Я уверен, что должен быть более питонический способ сделать следующее:

for index, value1 in enumerate(data1):
    print index, value1 + data2[index]

Я хочу использовать индекс и data1 [index] и data2 [index] внутри цикла for.

4b9b3361

Ответ 1

Используйте zip:

for index, (value1, value2) in enumerate(zip(data1, data2)):
    print index, value1 + value2

Обратите внимание, что zip работает только до более короткого из двух списков (не проблема для списков одинаковой длины), но в случае неравных списков длины, если вы хотите пройти весь список, используйте itertools.izip_longest.

Ответ 2

for i, (x, y) in enumerate(zip(data1, data2)):

В Python 2.x вы можете использовать itertools.izip вместо zip, esp. для очень длинных списков.

Ответ 4

Поскольку было упомянуто, что длина равна,

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

Ответ 5

Предположим, вы хотите использовать zip:

   >>> for x in zip([1,2], [3,4]):
    ...     print x
    ... 
    (1, 3)
    (2, 4)

Ответ 6

Хотя это не очень понятно, что вы ищете,

>>> data1 = [3,4,5,7]
>>> data2 = [4,6,8,9]
>>> for index, value in enumerate(zip(data1, data2)):
    print index, value[0]+value[1]


0 7
1 10
2 13
3 16