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

如何对Python嵌套字典内层相同键的数值进行汇总求和

实现方案

你需要统计嵌套字典中所有内层字典相同键的数值总和,以下是可直接运行的Python实现:


首先定义你提供的原始数据:

data = {
    'rekless': {'C': 2.0, 'H': 4.0, 'J': 0.0},
    'bwipo': {'C': 3.0, 'D': 4.0, 'H': 0.0},
    'wunder': {'D': 10.0, 'G': 20.0, 'H': 0.50},
    'caps': {'D': 3.1, 'I': 2.0, '9J': 1.0, '10K': 2.0},
    'jankos': {'D': 3.2, 'I': 2.0, 'J': 1.0, 'K': 2.0}
}

方法1:基础遍历(无第三方依赖)

不需要导入任何库,逻辑最直观:

sum_result = {}
# 遍历所有内层字典
for inner_dict in data.values():
    for key, value in inner_dict.items():
        if key in sum_result:
            sum_result[key] += value
        else:
            sum_result[key] = value
print(sum_result)

运行输出:
{'C': 5.0, 'H': 4.5, 'J': 1.0, 'D': 20.3, 'G': 20.0, 'I': 4.0, '9J': 1.0, '10K': 2.0, 'K': 2.0}

方法2:使用collections.defaultdict简化写法

不需要手动判断键是否存在:

from collections import defaultdict

sum_result = defaultdict(float)
for inner_dict in data.values():
    for key, value in inner_dict.items():
        sum_result[key] += value

# 可选操作:转换为普通字典
sum_result = dict(sum_result)
print(sum_result)

方法3:使用collections.Counter一行完成

Counter原生支持加法运算,写法最简洁:

from collections import Counter

sum_result = dict(sum(map(Counter, data.values()), Counter()))
print(sum_result)

注意:该方法仅适合值为数字的场景,刚好匹配当前需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:54:03