# -*- coding: utf-8 -*-

# @File    : merge_dict.py
# @Date    : 2018-05-04

# 项目说明: 合并两个字典

# 要合并的字典
a = {"a1": 1, "a2": 2, "c": 3}
b = {"b1": 1, "b2": 2, "c": 4}

# 方式一:
c={}

c.update(a)
print(c)
# {'a1': 1, 'a2': 2, 'c': 3}

c.update(b)
print(c)
# {'a1': 1, 'a2': 2, 'c': 4, 'b1': 1, 'b2': 2}

# 方式二:py3
d = {**a, **b}
print(d)
# {'a1': 1, 'a2': 2, 'c': 4, 'b1': 1, 'b2': 2}

# 以上两种方式默认使用第二个字典的键值

# 方式三
from collections import ChainMap

e = ChainMap(a, b)
print(e)
# ChainMap({'a1': 1, 'a2': 2, 'c': 3}, {'b1': 1, 'b2': 2, 'c': 4})
print(e["c"])  # 3 默认使用第一个字典的键值


# 修改a字典中的值
a["a1"] = 5
print("c", c)
print("d", d)
print("e", e)  # e中的值被修改了
"""
c {'a1': 1, 'a2': 2, 'c': 4, 'b1': 1, 'b2': 2}
d {'a1': 1, 'a2': 2, 'c': 4, 'b1': 1, 'b2': 2}
e ChainMap({'a1': 5, 'a2': 2, 'c': 3}, {'b1': 1, 'b2': 2, 'c': 4})
"""

参考:一道Python面试题:如何快速合并两个字典