下面我会详细介绍Python中字典合并的四种方法,包括示例说明。
一、使用update()方法合并字典
update()
方法是Python中合并字典最常用的方法。该方法能够将一个字典的元素添加到另外一个字典里去,若重复,则更新其值。
下面是一个例子:
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1)
以上代码输出结果为:
{'a': 1, 'b': 3, 'c': 4}
解释一下代码的执行过程:
在此例中,将dict2中的元素添加到了dict1中。当两个字典有相同的key时,字典后面的key对应的值将会替换字典前面的值。
二、使用双星号运算符()合并字典**
在Python 3.5以后的版本,可以使用双星号运算符(**)将两个字典合并为一个字典。
下面是一个例子:
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict3 = {**dict1, **dict2}
print(dict3)
以上代码输出结果为:
{'a': 1, 'b': 3, 'c': 4}
解释一下代码的执行过程:
在此例中,使用双星号运算符将dict1和dict2合并为一个字典,生成的新字典dict3中,相同的key以dict1中的值为准。
三、使用ChainMap()函数合并字典
ChainMap()
是Python3中的一个函数,用于将多个字典合并为一个字典,且它们的存储方式相当于链表结构。
下面是一个例子:
from collections import ChainMap
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict3 = ChainMap(dict1, dict2)
print(dict(dict3))
以上代码输出结果为:
{'a': 1, 'b': 2, 'c': 4}
解释一下代码的执行过程:
在此例中,使用ChainMap将dict1和dict2合并为一个字典。它将字典按顺序链接起来,如果查询字典时发现有重复的键,则返回第一个字典中的对应值。
四、使用字典的update()方法和字典推导式
该方法比较特殊,需要先使用一个字典的update()方法,将接收的参数字典合并到该字典中,然后使用一个字典推导式来合并接收的两个字典。
下面是一个例子:
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict3 = {k: v for d in [dict1, dict2] for k, v in d.items()}
print(dict3)
以上代码输出结果为:
{'a': 1, 'b': 3, 'c': 4}
解释一下代码的执行过程:
在此例中,先用update()方法将dict2合并到dict1中,然后通过字典推导式重新生成一个字典dict3。这里的字典推导式将两个字典的元素组合在一起,并返回一个新字典。
至此,Python中字典合并的四种方法总结就讲完了。