Skip to main content
 首页 » 编程设计

python之如何在 python 字典列表中组合值

2025年05月04日15soundcode

我有一个看起来像这样的字典列表:

l = [{'name': 'john', 'amount': 50}, {'name': 'al', 'amount': 20}, {'name': 'john', 'amount': 80}] 

有什么方法可以合并/合并匹配的名称值字典并求和吗?

请您参考如下方法:

您可以使用 collections.Counter() object将名称映射到数量,并在进行时对它们求和:

from collections import Counter 
 
summed = Counter() 
for d in l: 
    summed[d['name']] += d['amount'] 
result = [{'name': name, 'amount': amount} for name, amount in summed.most_common()] 

然后结果也按金额排序(最高在前):

>>> from collections import Counter 
>>> l = [{'name': 'john', 'amount': 50}, {'name': 'al', 'amount': 20}, {'name': 'john', 'amount': 80}] 
>>> summed = Counter() 
>>> for d in l: 
...     summed[d['name']] += d['amount'] 
...  
>>> summed 
Counter({'john': 130, 'al': 20}) 
>>> [{'name': name, 'amount': amount} for name, amount in summed.most_common()] 
[{'amount': 130, 'name': 'john'}, {'amount': 20, 'name': 'al'}]