Python在同一for语句遍历多个不同值 解包报错ValueError问题
错误原因
- 你写的
for info, meta in account, ("First Name", "Last Name", "Age")不符合Python多序列同步遍历语法:该写法会把account和字段元组作为两个迭代元素,每次循环尝试把长度为3的账户信息/字段元组拆成info、meta两个变量,直接触发解包错误。 - 原代码存在多余嵌套:外层已经对字段和账户列表做了循环,内层重复遍历字段元组属于逻辑冗余。
解决方案
使用Python内置的zip()函数,将字段名序列和账户信息序列按位置一一打包配对,即可实现同步遍历。
修正后可运行代码
accounts = [["Tom", "Boyle", "23"]] fields = ("First Name", "Last Name", "Age") for account in accounts: for meta, info in zip(fields, account): print(f"{meta}: {info}") print("------------------------------------------")
运行后输出和你给出的预期完全一致。
内容的提问来源于stack exchange,提问作者FallingCave
相关产品推荐
相关产品推荐

