问题
有多个字典和映射,在逻辑上将它们合并成一个单独的映射结构,以此需要执行某些操作(例如:查找值或检查键是否存在)
解决方案
collection.ChainMap类
假设有两个字典,a和b,现在假设要执行查找操作,必须检查这两个字典(例如,先在a中查找,再在b中查找)
from collections import ChainMap
a=['x':1,'z':3]
b=['y':2,'z':5]
c = ChainMap(a,b)
print (c['x'])
#1
print (c['y'])
#2
print (c['z'])
#3
ChainMap可接受多个映射然后逻辑上使他们表现为一个单独的映射结构,但是这些映射在字面上并不会合并在一起。
ChainMap合并的字典里如果有重复的键,那么这里会采用第一个映射中对应的值。
修改映射的操作作用在第一个映射结构上,如:
c['z'] = 10
c['w'] =40
print a
#a={'x': 1, 'z': 10, 'w': 40}
print b
#b={'y': 2, 'z': 5}
网友评论