Цикл по нескольким спискам с перечислением - PullRequest
2 голосов
/ 22 апреля 2020

Похоже, что enumerate и zip не работают вместе в Python 3?

alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']

for i, a, b in enumerate(zip(alist, blist)):
    print(i, a, b)

Возвращает объект int, который не может быть вызван

Ответы [ 2 ]

8 голосов
/ 22 апреля 2020

Добавить () вокруг a,b. Распаковка значений предназначена для функции enumerate, которая возвращает кортежи второго размера: index и value. Если вы хотите распаковать элемент значения, как показано ниже:

for i, (a, b) in enumerate(zip(alist, blist)):
    print(i, a, b)
1 голос
/ 22 апреля 2020

Поскольку zip возвращает кортежи, вы также можете сделать:

for i, t in enumerate(zip(alist, blist)):
    print(i, t[0], t[1])

Или:

for i, t in enumerate(zip(alist, blist)):
    print(i, *t)
...