我有一个这种形式的字典列表:
[
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
{'signal_8': 1, 'signal_1': 7, 'signal_10': 5, 'signal_5': 2, 'signal_2': 5, 'signal_6': 3, 'signal_4': 9, 'signal_3': 6, 'signal_9': 4, 'signal_7': 8},
]
我想像这样为列表中的每个元素按键总结其中的值:
{
'signal_8': 3,
'signal_1': 21,
'signal_10': 15,
'signal_5': 6,
'signal_2': 15,
'signal_6': 9,
'signal_4': 27,
'signal_3': 18,
'signal_9': 12,
'signal_7': 24
}
我尝试过的是以下内容:
result = {}
sm = 0
for elm in original_list:
for k,v in elm.items():
sm += v
result[k] = sm
print(result)
但它仍然不起作用。
原文由 saul 发布,翻译遵循 CC BY-SA 4.0 许可协议
你想要的是
Counter
集合类型。关于 集合 的 Python 文档对其进行了最好的描述,但本质上Counter
是一种特殊类型的字典,其中所有值都是整数。您可以传递任何密钥,包括不存在的密钥,并添加到它们中。例如:编辑:@timgeb 提供了此答案的变体,它在
Counter
对象上本地使用update()
方法。我建议将其作为最佳答案