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

Python遍历嵌套字典按相同键累加合并值的实现问题

原代码问题分析

  • 循环逻辑错误:外层遍历my_dict顶层键的同时,内层又遍历了整个my_dict的所有条目,导致不同顶层键的统计值被混合累加
  • 累加计数器未重置:new_dict定义在循环外,处理完一个顶层键后没有清空,统计值会持续叠加到后续所有键的结果中

正确实现代码

from collections import defaultdict

# 此处my_dict替换为你实际的源字典即可
my_dict = {
    "key1": [{"A": 0}, {"B": 1}, {"C": 0}, {"D": 0},
             {"A": 0}, {"B": 0}, {"C": 0}, {"D": 0},
             {"A": 0}, {"B": 1}, {"C": 0}, {"D": 0}],
    "key2": [{"A": 0}, {"B": 0}, {"C": 0}, {"D": 0},
             {"A": 1}, {"B": 0}, {"C": 0}, {"D": 0}, 
             {"A": 0}, {"B": 0}, {"C": 0}, {"D": 0},
             {"A": 1}, {"B": 0}, {"C": 0}, {"D": 0},
             {"A": 0}, {"B": 0}, {"C": 0}, {"D": 0}]
}

result = {}
# 遍历每个顶层键和对应的子字典列表
for top_key, dict_list in my_dict.items():
    # 每个顶层键单独初始化计数器,避免不同键的统计值互相干扰
    count = defaultdict(int)
    for single_dict in dict_list:
        for k, v in single_dict.items():
            count[k] += v
    # 将统计结果转换为要求的单键字典列表格式
    result[top_key] = [{k: v} for k, v in count.items()]

# 输出验证
print(result)

运行后输出结果和需求完全匹配:

{'key1': [{'A': 0}, {'B': 2}, {'C': 0}, {'D': 0}], 'key2': [{'A': 2}, {'B': 0}, {'C': 0}, {'D': 0}]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:45:02