ChainMap


一个 ChainMap 接受多个字典并将它们在逻辑上变为一个字典。 

这些字典并不是真的合并在一起

from collections import ChainMap

a = {'x': 1, 'z': 3}
b = {'y': 2, 'z': 4}
c = ChainMap(a, b)
print(c['x'])  # 1 from a
print(c['y'])  # 2 from b

如果出现重复键,排第一的字典的的映射值会被返回。
print(c['z'])  # 3 from a


对于字典的添加, 更新或删除操作总是影响的是列表中第一个字典

c['w'] = 20
print(c)
# ChainMap({'w': 20, 'z': 3, 'x': 1}, {'z': 4, 'y': 2})

c['z'] = 10
print(c)
# ChainMap({'x': 1, 'z': 10, 'w': 20}, {'z': 4, 'y': 2})
del c['z']
print(c)
# ChainMap({'w': 20, 'x': 1}, {'y': 2, 'z': 4})