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

Python新手求助:嵌套字典'y'值求和报错'int不可迭代'

解决代码中'y'值求和的问题

错误原因

你遇到的TypeError: 'int' object is not iterable是因为sum()函数要求传入可迭代对象(比如列表、生成器),但你在循环里直接把单个整数(inventory[key]['y']的值是2、5这类整数)传给了sum(),自然会触发错误。

修正方案

方法1:初始化累加变量遍历求和

inventory = {
'x' : {'x': 1, 'y': 2, 'z': 3},
'y' : {'x': 4, 'y': 5, 'z': 6}
}

total_y = 0
# 遍历字典里的所有子字典
for sub_dict in inventory.values():
    total_y += sub_dict['y']

print(total_y)  # 输出结果:7

方法2:用生成器表达式简化代码

inventory = {
'x' : {'x': 1, 'y': 2, 'z': 3},
'y' : {'x': 4, 'y': 5, 'z': 6}
}

# 生成器表达式取出所有'y'值,直接传给sum求和
total_y = sum(sub_dict['y'] for sub_dict in inventory.values())
print(total_y)  # 输出结果:7

说明

两种方法核心逻辑一致:先拿到inventory里的所有子字典,逐个取出每个子字典中'y'对应的整数值,再把这些值累加起来。区别只是写法简洁度,你可以根据自己的理解选择使用。

内容的提问来源于stack exchange,提问作者LowTowerR RL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:10:58