gpt4 book ai didi

python - 如何合并字典列表,对重复键的值求和

转载 作者:行者123 更新时间:2023-11-30 22:57:17 25 4
gpt4 key购买 nike

在这个字典列表中,我想总结匹配键的,以便输出如下所示:

dict_x = [{(1, 2): 100}, {(1, 3): 150}, {(1, 3): 150, (3, 4): 150}, {(4, 5): 10, (1, 3): 10, (3, 4): 10},  {(5, 6): 15}]

output:{(1, 2): 100, (1, 3): 310, (3, 4): 160, (4, 5): 10, (5, 6): 15}

我已经阅读了一些页面,例如 How can I count the occurrences of a list item in Python?Count how many times a part of a key appears in a dictionary python虽然它们计算匹配元素的出现次数,但它们并不完全对匹配元素进行多重求和。感谢您抽出时间。

最佳答案

这是一种使用 collections.Counter 一次性完成此操作的方法:

>>> from collections import Counter
>>> sum(map(Counter, dict_x), Counter())
Counter({(1, 2): 100, (1, 3): 310, (3, 4): 160, (4, 5): 10, (5, 6): 15})
<小时/>

之前的回复:

也许不是最有效的方法,但对于一个小列表,您可以分两次完成此操作:

>>> keys = [k for d in dict_x for k in d]
>>> {k: sum(d.get(k, 0) for d in dict_x) for k in keys}
{(1, 2): 100, (1, 3): 310, (3, 4): 160, (4, 5): 10, (5, 6): 15}

第一行获取所有键,第二行对结果求和。我几乎肯定有一些更聪明的方法可以使用 python 内置函数来做到这一点......我会考虑一下。

关于python - 如何合并字典列表,对重复键的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36758945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com