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

标签 python

考虑到有一个包含多个字典的列表,它们共享相同的键。

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

如何总结他们的值(value)观?预期:

data = [{'count': 5, 'os': 'Windows'},{'count': 6, 'os': 'Linux'}]

最佳答案

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'}]

关于python - 带字典的列表 - 计算所有键的值 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16187379/

相关文章:

python - pygame鼠标点击事件

python - 在使用 python 脚本导入 postgres 之前,如何在 csv 文件中划分单元格?

Python:检索列表值内列表值的长度

python - Pandas :将日期时间时间线从一个数据帧强加到另一个数据帧

Python mechanize - 提交表单两次

python - 如何 pip install 进行开发?

python - Python 的主目录在哪里?

python - 如何获取在 python 中传递给我的装饰器的函数的文件名?

python - Yum 在 Amazon Linux 上安装 libhdf5-dev

python - 如何测试 SocketIO 服务器连接(使用 pytest 或任何其他包)?