【问题标题】:How to sum values from a dictionary that is embedded in another dictionary in Python?如何对嵌入在 Python 中的另一个字典中的字典中的值求和?
【发布时间】:2023-02-01 09:09:58
【问题描述】:
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)

我有一个字典,其中包含另一个字典,如上例。我如何轻松地总结总组合的重量?

我试过列一个清单:

mix_list = (total_mix['index 1']['Amount wt'], total_mix['index 2']['Amount wt'], total_mix['index 3']['Amount wt'])

然后使用 sum() 将它们全部加起来并且它确实有效,但我想知道是否有更简单/更短的方法来执行此操作。尤其是如果字典里的词条多了,感觉会很费时间。此外,字典必须能够调用带有索引号的信息,这就是为什么我首先将它放入另一个字典的原因。

【问题讨论】:

    标签: python


    【解决方案1】:

    您可以使用 for 循环遍历 total_mix 中的项目,并为每个内部字典添加 Amount wt 键的值。

    total_wt = 0
    for part in total_mix.values():
        total_wt += part['Amount wt']
    
    print("Total weight:", total_wt)
    

    另一种解决方案

    total_wt = sum(part['Amount wt'] for part in total_mix.values())
    print("Total weight:", total_wt)
    

    输出

    Total weight: 100
    

    【讨论】:

    • 为什么不将 sum() 与生成器表达式一起使用?
    • 或者列表理解:print(sum(inner_dict['Amount wt'] for inner_dict in total_mix.values()))真的很重要,只是一个偏好问题
    • @Caridorc 理解中没有列表
    【解决方案2】:

    这是单行的:

    print(sum(part["Amount wt"] for part in total_mix.values()))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2016-12-21
      • 2021-01-23
      • 2014-09-16
      相关资源
      最近更新 更多