PythonNote036---python中字典合并

多个字典合并的操作

不同key

x = {"id": 1}
y = {"name": "jack"}
{**x,**y}
{'id': 1, 'name': 'jack'}

相同key

两个字典合并

相同key会出现覆盖的情况

x = {"id": 1}
y = {"name": "jack","id":2}
{**x,**y}
{'id': 2, 'name': 'jack'}

如果value是list格式,可把同个key的value进行合并,或者做其他操作

x = {"id": [1]}
y = {"name": ["jack"],"id":[2]}
{key: x.get(key, []) + y.get(key, []) for key in x.keys() | y.keys()}
{'id': [1, 2], 'name': ['jack']}

多个字典合并

from functools import reduce
x = {"id": [1],"name": ["leo"]}
y = {"name": ["jack"],"id":[2]}
z = {"name": ["mike"],"id":[3]}
reduce(lambda x, y:{key:x.get(key,[])+y.get(key,[]) for key in x.keys()|y.keys()} ,[x,y,z])
{'id': [1, 2, 3], 'name': ['leo', 'jack', 'mike']}

                                2022-04-02 于南京市江宁区九龙湖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值