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})