在 Python 中,想要合并两个字典,最常用最简单的有以下 3 种方式。
- 使用 “|” 运算符。
- 使用 “**” 运算符。
- 使用 update() 方法。
使用 “|” 合并字典
Python 3.9 新增了一个 “|” 运算符,它可以用来快速合并两个或多个字典。
语法:
dict1 | dict2说明:
“|” 运算符会返回一个新的字典,而不会修改原来的字典。
示例 1:使用 “|” 运算符
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
result = dict1 | dict2
print(result)运行结果如下。
{'a': 1, 'b': 2, 'c': 3, 'd': 4}示例 2:当遇到相同的键时
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 99, 'c': 3}
result = dict1 | dict2
print(result)运行结果如下。
{'a': 1, 'b': 99, 'c': 3}分析:
在这个例子中,dict1 和 dict2 都包含键 'b'。在使用 | 运算符合并时,位于右侧(后面)的 dict2 的值会覆盖位于左侧(前面)的 dict1 的值,因此合并后的字典中 'b' 的值为 99。
使用 “**” 合并字典
在 Python 中,我们可以使用 “**(双星号)” 来对一个字典进行解包。其中 “*” 用于对序列解包,而 “**” 用于对字典解包。“**” 最经典的一个作用就是合并字典。
示例 3:使用 “**”
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
result = {**dict1, **dict2}
print(result)
print(dict1)
print(dict2)运行结果如下。
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
{'a': 1, 'b': 2}
{'c': 3, 'd': 4}分析:
在上面示例中,**dict1 是对 dict1 进行解包,此时拿到的是 'a':1,'b':2 这一串东西。**dict2 是对 dict2 进行解包,此时拿到的是 'c':3,'d':4 这一串东西。{**dict1, **dict2} 其实就是把这两串东西塞到 “{}” 里面进行 “组装”,这样组装出来的就是一个新的字典了,分析如下图所示。

使用 update() 合并字典
update() 是 Python 字典的一个方法,它使用另一个字典、可迭代对象或关键字参数来更新当前字典。如果键已存在,则覆盖其值;如果键不存在,则新增键值对。
语法:
dict1.update(dict2)说明:
上面语法表示使用 dict2 来更新 dict1,最后会改变 dict1 的值。其中,如果 dict2 中已经包含 dict1 中已有的键值对,那么 dict1 中的 value 就会被覆盖。如果 dict2 中包含 dict1 中不存在的键值对,那么就会把该键值对添加到 dict1 中。
示例 4:使用 update() 方法
d1 = {'one': 1, 'two': 2, 'three': 3}
d2 = {'three': 3.4, 'four': 4}
d1.update(d2)
print(d1)运行结果如下。
{'one': 1, 'two': 2, 'three': 3.4, 'four': 4}