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

多字典指定键加权求和:替代繁琐判断的优化实现方案咨询

优化多字典带权重的键值求和实现

核心思路

把字典与对应的权重打包成元组列表,遍历目标键时,统一用dict.get(key, 0)获取值(不存在则取0),再按权重累加,彻底避免冗余的if判断,同时大幅提升扩展性。

完整实现代码

# 定义原始字典
dict_1 = {"Mike": 1, "Lilly": 2, "David": 3}
dict_2 = {"Mike": 4, "Peter": 5, "Kate": 6}
dict_3 = {"Mike": 7, "Lilly": 8, "Jack": 9}

# 把字典和对应权重配对,新增字典时直接加元组即可
dicts_with_weights = [(dict_1, 1), (dict_2, 2), (dict_3, 3)]
target_keys = ["Mike", "Lilly", "David"]

# 遍历目标键计算加权和
for key in target_keys:
    total = 0
    for d, weight in dicts_with_weights:
        total += d.get(key, 0) * weight
    print(f"{key} 的加权总和: {total}")

输出结果

Mike 的加权总和: 30
Lilly 的加权总和: 26
David 的加权总和: 3

(手动拆解逻辑:Mike=1*1+4*2+7*3,Lilly=2*1+0*2+8*3,David=3*1+0*2+0*3)

优势说明

  • 扩展性极强:新增字典时,只需要在dicts_with_weights列表里添加(新字典, 对应权重),不需要修改循环逻辑
  • 代码简洁:用dict.get()替代了大量"键是否存在"的if判断,逻辑更清晰
  • 可读性高:字典与权重的对应关系一目了然,维护成本低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:55:29