【发布时间】:2020-01-08 00:33:35
【问题描述】:
我有两个列表,id 和 name,我想将它们压缩在一起并以两种不同的方式输出它们。第一种方法分离 zip 元组并在字符串中输出 ID 以及相应的名称。第二种方式应该只输出 zip 元组本身。
当我运行这段代码时,第一个 for 循环在收到以下错误之前执行:
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
令人困惑的部分是,如果我注释掉一个 for 循环并单独运行另一个,我可以成功运行每个循环。由于传入的两个参数都是可迭代列表,我不确定为什么错误说第一个参数必须支持迭代。任何帮助表示赞赏。
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)
【问题讨论】:
-
您只是在
name旁边的循环中使用您的变量名称id隐藏列表名称id。因此,它不会运行。另外,我建议使用与id不同的名称,因为id已经是一个Python 函数。见这里:docs.python.org/3/library/functions.html#id
标签: python python-3.x list zip