带字典的列表 - 计算所有键的值(Python)

nor*_*rus 1 python

考虑到有一个包含多个词典的列表,共享相同的键.

data = [{'count': 3, 'os': 'Windows'},
        {'count': 2, 'os': 'Windows'},
        {'count': 5, 'os': 'Linux'},
        {'count': 1, 'os': 'Linux'}]
Run Code Online (Sandbox Code Playgroud)

如何总结自己的价值观?预期:

data = [{'count': 5, 'os': 'Windows'},{'count': 6, 'os': 'Linux'}]
Run Code Online (Sandbox Code Playgroud)

Zau*_*bov 6

import itertools

data = [
    {'count': 3, 'os': 'Windows'},
    {'count': 2, 'os': 'Windows'},
    {'count': 5, 'os': 'Linux'},
    {'count': 1, 'os': 'Linux'}
]

results = []
for key, val in itertools.groupby(data, lambda v: v['os']):
    count = sum(item['count'] for item in val)
    results.append({'count' : count, 'os' : key})

>>> results
>>> [{'count': 5, 'os': 'Windows'}, {'count': 6, 'os': 'Linux'}]
Run Code Online (Sandbox Code Playgroud)