Python相同键字典对应数值相加报错及实现方案
同键字典对应数值累加的实现方法
你原有代码报错的核心原因是:Python不支持直接将dict类型强制转换为float/int数值类型,也没有定义默认的字典加法规则,因此触发了类型错误。
方法1:字典推导式(无依赖,兼容性最好)
由于你确认两个字典的键完全一致,直接遍历任意一个字典的键,取两个字典对应值累加即可:
mcdonalds_sausage_mcgriddle = {'calories': 550, 'fat': 33, 'carbs': 44, 'protein': 19} fairlife_choc_milk = {'calories': 140, 'fat': 5, 'carbs': 13, 'protein': 13} bkfast = {key: mcdonalds_sausage_mcgriddle[key] + fairlife_choc_milk[key] for key in mcdonalds_sausage_mcgriddle} print(bkfast)
运行后输出结果和你预期完全一致:{'calories': 690, 'fat': 38, 'carbs': 57, 'protein': 32}
方法2:使用标准库Counter(代码最简洁)
Python内置的collections.Counter类天生支持同键数值的加法运算,非常适合这类计数类字典的累加场景:
from collections import Counter mcdonalds_sausage_mcgriddle = {'calories': 550, 'fat': 33, 'carbs': 44, 'protein': 19} fairlife_choc_milk = {'calories': 140, 'fat': 5, 'carbs': 13, 'protein': 13} # 累加后可按需转换为普通字典 bkfast = dict(Counter(mcdonalds_sausage_mcgriddle) + Counter(fairlife_choc_milk)) print(bkfast)
内容的提问来源于stack exchange,提问作者poptart20
相关产品推荐
相关产品推荐

