You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python遍历值为列表的字典报错:ValueError: too many values to unpack

字典遍历报错:ValueError: too many values to unpack (expected 2)

问题背景

给定字典:

dict = {'john': [1,2], 'peter': [3,4], 'stacy': [5,6], 'chad': [7,8]}

期望输出:

john has 1 and 2
peter has 3 and 4
stacy has 5 and 6
chad has 7 and 8

编写的错误代码:

for keys, values in dict:
    print(f"{keys} has {values[0]} and {values[1]}")

运行后报错:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)

问题原因

直接遍历字典时,默认只会迭代字典的键,每次循环拿到的是单个字符串(比如'john')。你试图把这个字符串拆成keys和values两个变量,字符串的字符数远多于2,因此触发解包错误。

修复方案

方案1:使用items()方法遍历键值对

items()方法会返回字典中所有键值对的元组,直接解包成keys和values即可:

dict = {'john': [1,2], 'peter': [3,4], 'stacy': [5,6], 'chad': [7,8]}
for keys, values in dict.items():
    print(f"{keys} has {values[0]} and {values[1]}")

方案2:遍历键后通过键取值

先遍历字典的键,再通过键获取对应的值:

dict = {'john': [1,2], 'peter': [3,4], 'stacy': [5,6], 'chad': [7,8]}
for keys in dict:
    values = dict[keys]
    print(f"{keys} has {values[0]} and {values[1]}")

两种方案都能输出你想要的结果。

内容的提问来源于stack exchange,提问作者Tar-Eruntalion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:03:35