Pan*_*ang 2 python dictionary list
假设我有以下列表:
[{'name': 'Amy', 'count': 1}, {'name': 'Amy', 'count': 2}, {'name': 'Peter', 'count': 1}]
Run Code Online (Sandbox Code Playgroud)
我怎么能将它分组并计算总数以获得以下结果:
[{'name': 'Amy', 'count': 3}, {'name': 'Peter', 'count': 1}]
Run Code Online (Sandbox Code Playgroud)
谢谢.
你可以使用collecions.Counter:
from collections import Counter
l = [
{'name': 'Amy', 'count': 1},
{'name': 'Amy', 'count': 2},
{'name': 'Peter', 'count': 1}
]
c = Counter()
for v in l:
c[v['name']] += v['count']
Run Code Online (Sandbox Code Playgroud)
结果:
>>> c
Counter({'Amy': 3, 'Peter': 1})
>>> [{'name': name, 'count': count} for name, count in c.items()]
[{'count': 3, 'name': 'Amy'}, {'count': 1, 'name': 'Peter'}]
Run Code Online (Sandbox Code Playgroud)