字典为相同的键添加值 [英] dictionary add values for the same keys

查看:28
本文介绍了字典为相同的键添加值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个字典列表:

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

这篇关于字典为相同的键添加值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆