字典为相同的键添加值
问题描述
我有一个字典列表:
[{'name':'Jay', 'value':'1'},{'name':'roc', 'value':'9'},{'name':'Jay', 'value':'7'},{'name':'roc', 'value':'2'}]
我希望它是:
[{'name':'Jay', 'value':'8'},{'name':'roc', 'value':'11'}]
我尝试遍历,但找不到可以执行此操作的示例。如有任何提示或想法,我们将不胜感激。
解决方案
您可以使用默认字典:
lst = [{'name':'Jay', 'value':'1'},{'name':'roc', 'value':'9'},{'name':'Jay', 'value':'7'},{'name':'roc', 'value':'2'}]
1)每个名称的总和:
from collections import defaultdict
result = defaultdict(int)
for d in lst:
result[d['name']] += int(d['value'])
2)将名称-值对转换为列表中的字典:
[{'name': name, 'value': value} for name, value in result.items()]
# [{'name': 'roc', 'value': 11}, {'name': 'Jay', 'value': 8}]
或者如果您想要@kevin:
注释的字符串类型的值[{'name': name, 'value': str(value)} for name, value in result.items()]
# [{'name': 'roc', 'value': '11'}, {'name': 'Jay', 'value': '8'}]
相关文章