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

Python如何对字典中重复NAME对应的VALUE值求和

实现方案

你的代码存在3个明显错误:

  • 变量名大小写不匹配:循环中定义的临时变量是大写VALUE,累加时写的是小写value,会触发NameError
  • 打印逻辑错误:对字符串类型的key调用list()会把单个字符拆分为列表元素,对整数类型的累加值调用list()会触发类型错误
  • 未按要求的格式组织输出内容

以下是可直接运行的正确代码:

核心累加逻辑

dict_data = {
  "NAME": ['A', 'B', 'A', 'B', 'C', 'C'],
  "VALUE": [100, 200 , 100 , 200, 300, 300]
}

# 初始化去重的NAME键,初始值为0
sum_result = dict.fromkeys(dict_data["NAME"], 0)
# 遍历配对的NAME和VALUE,按NAME累加
for name, val in zip(dict_data["NAME"], dict_data["VALUE"]):
    sum_result[name] += val

第一种输出格式

逐行打印每个NAME和对应的累加值:

for name, total_val in sum_result.items():
    print(f"NAME: {name}")
    print(f"VALUE: {total_val}")

输出结果:

NAME: A
VALUE: 200
NAME: B
VALUE: 400
NAME: C
VALUE: 600

第二种输出格式

分别生成NAME列表和累加后的VALUE列表打印:

name_list = list(sum_result.keys())
value_sum_list = list(sum_result.values())
print(name_list)
print(value_sum_list)

输出结果:

['A', 'B', 'C']
[200, 400, 600]

提示:Python 3.7及以上版本的原生字典默认保留键的插入顺序,输出顺序和NAME首次出现的顺序完全一致。如果使用更低版本Python,将初始化字典的dict替换为collections.OrderedDict即可保证顺序正确。

内容的提问来源于stack exchange,提问作者Đặng Lực

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:57:14