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

如何对嵌套字典中列表的第二个元素求和?求实现代码

实现方案

以下几种方法都可以实现你需要的嵌套字典求和需求:

方法1:字典推导式(简洁高效)

这是最推荐的方式,一行代码完成转换:

original_dict = {('201', '1'): {'357': [1, 67500], '360': [1, 40000], '362': [2, 45000], '365': [1, 12500]},
                ('301', '2'): {'322': [5, 237500]},
                ('301', '1'): {'325': [10, 675000]}}

result = {key: sum(item[1] for item in inner_dict.values()) for key, inner_dict in original_dict.items()}
print(result)

运行后输出:

{('201', '1'): 165000, ('301', '2'): 237500, ('301', '1'): 675000}

核心逻辑:遍历外层字典的每个键值对,对每个内层字典,提取所有列表的第二个元素并求和,作为结果字典对应键的值。

方法2:普通循环遍历(直观易懂)

如果需要更清晰的步骤展示,用循环逐个处理:

original_dict = {('201', '1'): {'357': [1, 67500], '360': [1, 40000], '362': [2, 45000], '365': [1, 12500]},
                ('301', '2'): {'322': [5, 237500]},
                ('301', '1'): {'325': [10, 675000]}}

result = {}
for outer_key, inner_dict in original_dict.items():
    total = 0
    for lst in inner_dict.values():
        total += lst[1]
    result[outer_key] = total
print(result)

方法3:map+sum组合实现

用map函数提取列表的第二个元素,再求和:

original_dict = {('201', '1'): {'357': [1, 67500], '360': [1, 40000], '362': [2, 45000], '365': [1, 12500]},
                ('301', '2'): {'322': [5, 237500]},
                ('301', '1'): {'325': [10, 675000]}}

result = {key: sum(map(lambda x: x[1], inner_dict.values())) for key, inner_dict in original_dict.items()}
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:42:42