在包含多个字典的列表中,对每4个字典求和相似的键值



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

[{'success': 10, 'failed': 15, 'manual': 20},
{'manual': 5, 'success': 10},
{},
{},
{'success': 20, 'manual': 25, 'failed': 30},
{'success': 2, 'manual': 4, 'failed': 6},
{},
{}]

我想对前四个字典的键值求和,然后再对接下来的四个字典的键值求和,最终得到两个字典的输出,其求和值如下:

[{'success': 20, 'failed': 15, 'manual': 25},
{'success': 22, 'manual': 29, 'success': 36}]

有人能帮助实现这一动态列表的方法吗?

您可以对每4行数据进行小计,并将结果存储在如下列表中:

from pprint import pprint
data = [
{'success': 10, 'failed': 15, 'manual': 20},
{'manual': 5, 'success': 10},
{},
{},
{'success': 20, 'manual': 25, 'failed': 30},
{'success': 2, 'manual': 4, 'failed': 6},
{},
{}
]
subtotal = {"success": 0, "failed": 0, "manual": 0}
results = []
for count, datum in enumerate(data, 1):
if count % 4 == 0:
results.append(dict(subtotal))
subtotal = {"success": 0, "failed": 0, "manual": 0}
for key, value in datum.items():
subtotal[key] += value

pprint(results)

输出:

[{'failed': 15, 'manual': 25, 'success': 20},
{'failed': 36, 'manual': 29, 'success': 22}]

最新更新