Python中如何对嵌套字典中的Amount wt值进行求和?
高效计算嵌套字典中Amount wt的总和
原代码结构
part_1 = {'Ingredient':'Water', 'Amount wt':40 } part_2 = {'Ingredient':'Dye', 'Amount wt': 50 } part_3 = {'Ingredient':'Salt', 'Amount wt':10 } total_mix = {'index 1': part_1, 'index 2': part_2, 'index 3': part_3} print(total_mix)
需求痛点
当前通过手动提取每个索引的Amount wt值到元组再求和的方式,在字典条目较多时效率极低,需要更简洁的实现方法,同时保留通过索引编号调用信息的功能。
解决方案
方法1:生成器表达式直接求和
无需修改原字典结构,一行代码完成求和,同时完全保留原索引调用功能:
total_weight = sum(item['Amount wt'] for item in total_mix.values()) print(total_weight) # 输出: 100
原理:遍历total_mix的所有值(即各个子字典),自动提取每个子字典的Amount wt字段值,直接传入sum()计算总和,不管条目数量多少都能自动适配。
方法2:封装为可复用函数
如果需要多次计算或追求代码可读性,可以封装成函数:
def get_total_weight(mix_dict): return sum(item['Amount wt'] for item in mix_dict.values()) # 调用示例 total_weight = get_total_weight(total_mix) print(total_weight) # 输出: 100
说明
以上两种方法都不会改变total_mix的原有结构,你依然可以通过total_mix['index 1']、total_mix['index 2']等方式获取对应成分的详细信息,完全满足需求。
内容的提问来源于stack exchange,提问作者bladee
相关产品推荐
相关产品推荐

