Ошибка вызова двух zip-функций подряд - PullRequest
0 голосов
/ 07 января 2020

У меня есть два списка, id и name, и я хочу сжать их вместе и вывести их двумя разными способами. Первый способ отделяет кортежи zip и выводит идентификатор вместе с соответствующим именем в строке. Второй способ должен просто выводить сами кортежи zip.

Когда я запускаю этот код, первый для l oop выполняется до получения следующей ошибки:

Traceback (most recent call last):

File "c:\Users\Alan\Desktop\test.py", line 7, in <module> for item in zip(id,name):

TypeError: zip argument #1 must support iteration

Запутанная часть что если я закомментирую один для l oop и запусту другой в одиночку, я могу успешно запустить каждый. Поскольку оба передаваемых аргумента являются итеративными списками, я не уверен, почему ошибка говорит, что первый аргумент должен поддерживать итерацию. Любая помощь приветствуется.

id=[117,234,821,257,265,489]
name=['john','max','aaron','jim','sierra','kat']

for id, name in zip(id,name):
    print(f'ID {id} is associated with {name}')

for item in zip(id,name):
    print(item)

Ответы [ 2 ]

0 голосов
/ 07 января 2020

Проблема заключается в тех же именах, которые вы использовали для переменных и списков в первом for-l oop, поэтому при повторном вызове id и name во втором for-l oop эти имена ссылаются на переменные, а не в списки. Следующий пример должен работать. (Также избегайте использования идентификатора, потому что это встроенная функция python, как уже упоминалось.)

ids=[117,234,821,257,265,489]
names=['john','max','aaron','jim','sierra','kat']

for idx, name in zip(ids,names):
    print(f'ID {idx} is associated with {name}')

for item in zip(ids,names):
    print(item)
0 голосов
/ 07 января 2020
# just change the first for loop variable name to something other than id
id=[117,234,821,257,265,489]
name=['john','max','aaron','jim','sierra','kat']

for idx, name in zip(id,name):
    print(f'ID {idx} is associated with {name}')

for item in zip(id,name):
    print(item)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...