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方法(山东舰的类型没有修改成功):{'山东舰': '滑跃', '福建舰': '弹射', '辽宁舰': '滑跃'}