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

如何在循环迭代中累加更新Python字典summary的键值对?

字典键值累加更新的解决方案

Python的dict.update()方法会直接覆盖已有键的值,所以没法实现你要的累加需求。以下是几种可行的解决方法:

方法1:手动遍历键值对(无需额外模块)

直接遍历临时字典的键值对,利用字典的get()方法处理不存在的键(默认返回0),再完成值的累加:

summary = {}

# 第一次迭代
temp = {'a': 10, 'b': 50}
for key, value in temp.items():
    summary[key] = summary.get(key, 0) + value

# 第二次迭代
temp = {'a': 40, 'b': 20, 'c': 100}
for key, value in temp.items():
    summary[key] = summary.get(key, 0) + value

print(summary)  # 输出: {'a': 50, 'b': 70, 'c': 100}

方法2:使用collections.defaultdict(更简洁)

导入defaultdict并指定默认值为整数0,不存在的键会自动初始化为0,直接累加即可:

from collections import defaultdict

summary = defaultdict(int)

# 第一次迭代
temp = {'a': 10, 'b': 50}
for key, value in temp.items():
    summary[key] += value

# 第二次迭代
temp = {'a': 40, 'b': 20, 'c': 100}
for key, value in temp.items():
    summary[key] += value

# 如需转为普通字典,执行:summary = dict(summary)
print(summary)  # 输出: defaultdict(<class 'int'>, {'a': 50, 'b': 70, 'c': 100})

方法3:封装成通用函数(适合循环场景)

如果需要在多次循环中重复调用,可以封装成函数:

def accumulate_dict(target, source):
    for k, v in source.items():
        target[k] = target.get(k, 0) + v

summary = {}
accumulate_dict(summary, {'a': 10, 'b': 50})
accumulate_dict(summary, {'a': 40, 'b': 20, 'c': 100})

print(summary)  # 输出: {'a': 50, 'b': 70, 'c': 100}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:35:45