python两个字典合并、相同的键不同的值_合并字典(如果特定键的值相同)

例如,我有四个字典的列表,例如

[{'username': 'xyz', 'label':'chemistry', 'marks': 56},

{'username': 'abc', 'label':'chemistry', 'marks': 95},

{'username': 'xyz', 'label':'math', 'marks': 43},

{'username': 'abc', 'label':'math', 'marks': 87}]

我想转换数据以便可以获取数据

[{'username': 'xyz', 'chemistry': 56, 'math': 43},

{'username': 'abc', 'chemistry': 95, 'math': 87}]

解决方法:

这是一个一站式解决方案,使用字典映射来跟踪每个用户名添加后的列表条目(假设您的字典列表存储在变量l中):

m = []

d = {}

for i in l:

u = i['username']

if u not in d:

m.append({'username': u})

d[u] = m[-1]

d[u][i['label']] = i['marks']

m将变为:

[{'username': 'xyz', 'chemistry': 56, 'math': 43}, {'username': 'abc', 'chemistry': 95, 'math': 87}]

标签:python-3-x,list,dictionary,python

来源: https://codeday.me/bug/20191024/1924404.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值