Python字典合并方法大全

old = {'辽宁舰': '滑跃', '山东舰': '滑跃'}
new = {'福建舰': '弹射'}

today = {}
today.update(old)
today.update(new)
print(f'update方法:{today}')

today = {**old, **new}
print(f'字典拆分方法:{today}')

today = dict(**old, **new)
print(f'拆分两个字典转dict方法:{today}')
#注:两个字典的所有键必须都是字符串,因为要作为dict函数的键值对参数传入

today = dict(old, **new)
print(f'拆分一个字典转dict方法:{today}')
#注:此时只需要第二个字典的所有键是字符串

today = dict(list(old.items()) + list(new.items()))
print(f'通过列表转二元组再转字典方法:{today}')

today = dict(old.items() | new.items())
print(f'dict+items的|运算方法:{today}')

today = dict(old | new)
print(f'dict+字典的|运算方法(Python3.9及以上):{today}')

today = old | new #其实不需要dict
print(f'字典的|运算方法(Python3.9及以上):{today}')

today = {k: v for dic in [old, new] for k, v in dic.items()}
print(f'推导式方法:{today}')

from itertools import chain
today = dict(chain(old.items(), new.items()))
print(f'chain方法:{today}')

from collections import ChainMap
today = dict(ChainMap(old, new))
print(f'ChainMap方法:{today}')

#注:ChainMap的字典出现重复的键,以靠前的键对应的值为准,可以看下面这个例子
new={'山东舰': '弹射','福建舰': '弹射'}
today = dict(ChainMap(old, new))
print(f'ChainMap方法(山东舰的类型没有修改成功):{today}')

输出:

update方法:{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
字典拆分方法:{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
拆分两个字典转dict方法:{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
拆分一个字典转dict方法:{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
通过列表转二元组再转字典方法:{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
dict+items的|运算方法:{'福建舰': '弹射', '山东舰': '滑跃', '辽宁舰': '滑跃'}
dict+字典的|运算方法(Python3.9及以上):{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
字典的|运算方法(Python3.9及以上):{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
推导式方法:{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
chain方法:{'辽宁舰': '滑跃', '山东舰': '滑跃', '福建舰': '弹射'}
ChainMap方法:{'福建舰': '弹射', '辽宁舰': '滑跃', '山东舰': '滑跃'}
ChainMap方法(山东舰的类型没有修改成功):{'山东舰': '滑跃', '福建舰': '弹射', '辽宁舰': '滑跃'}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值