在Python中,合并字典可以通过以下几种方法实现:
1. 使用`update()`方法:
dict1 = {'a': 1, 'b': 2}dict2 = {'c': 3, 'd': 4}dict1.update(dict2)print(dict1) 输出:{'a': 1, 'b': 2, 'c': 3, 'd': 4}
2. 使用字典解包运算符`{ dict1, dict2}`:
dict1 = {'a': 1, 'b': 2}dict2 = {'c': 3, 'd': 4}merged_dict = {dict1, dict2}print(merged_dict) 输出:{'a': 1, 'b': 2, 'c': 3, 'd': 4}
3. 使用`ChainMap`函数(来自`collections`库):
from collections import ChainMapdict1 = {'a': 1, 'b': 2}dict2 = {'c': 3, 'd': 4}merged_dict = ChainMap(dict1, dict2)print(merged_dict) 输出:ChainMap({'a': 1, 'b': 2}, {'c': 3, 'd': 4})
4. 使用` `运算符结合字典构造器:

dict1 = {'a': 1, 'b': 2}dict2 = {'c': 3, 'd': 4}merged_dict = dict(dict1, dict2)print(merged_dict) 输出:{'a': 1, 'b': 2, 'c': 3, 'd': 4}
5. 使用自定义函数(适用于Python 2或Python 3.4及以下版本):
def merge_dicts(x, y):z = x.copy()z.update(y)return zdict1 = {'a': 1, 'b': 2}dict2 = {'c': 3, 'd': 4}merged_dict = merge_dicts(dict1, dict2)print(merged_dict) 输出:{'a': 1, 'b': 2, 'c': 3, 'd': 4}
6. 使用`for`循环和字典更新:
a = {'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco'}b = {'name': 'r1'}for k, v in a.items():b[k] = vprint(b) 输出:{'name': 'r1', 'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco'}
7. 使用字典解析式:
a = {'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco'}b = {'name': 'r1'}c = {k: v for d in [a, b] for k, v in d.items()}print(c) 输出:{'name': 'r1', 'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco'}
以上方法均可用于合并字典,具体选择哪种方法取决于你的Python版本和个人偏好。需要注意的是,如果两个字典中存在相同的键,那么后者的值会覆盖前者的值。
