特有方法 解释 maps 返回全部的字典(这个列表中至少存在一个列表) new_child 在字典列表头部插入字典,如果其参数为空,则会默认插入一个空字典,并且返回一个改变后的ChainMap对象 parents 返回除了第一个字典的其余字典列表的ChainMap对象,可以用来查询除了第一个列表以外的内容。 collections a = {1: 2, 2: 3} b = {1: 3, 3: 4, 4: 5} chains = collections.ChainMap(a, b) # maps # 注意maps是个属性,不是一个方法,其改变 print(chains.maps) # [{1: 2, 2: 3}, {1: 3, 3: 4, 4: 5}] # get assert chains.get(1, -1) == 2 # parents # 从第二个map开始找 assert chains.parents.get(1, -1) == 3 # popitem assert chains.popitem() == (2, 3) # pop # 返回的是value assert chains.pop(1) == 2 # new_child assert chains.new_child() print(chains.maps) # [{}, {1: 3, 3: 4, 4: 5}] chains[2] = 1 print(chains.maps) # [{2: 1}, {1: 3, 3: 4, 4: 5}] # setdedault # 如果已经存在key,则不会添加 assert chains.setdefault(1, 10) == 3 # update chains.update({2: 4, 3: 5}) print(chains.maps) # [{1: 2, 2: 4, 3: 5}, {1: 3, 3: 4, 4: 5}] # keys print(chains.keys()) # KeysView(ChainMap({2: 4, 3: 5}, {1: 3, 3: 4, 4: 5})) # KeysView 继承了mapping和set print(2 in chains.keys()) # True print(len(chains.keys())) # 4(重复的不算) # clear chains.clear() print(chains.maps) # [{}, {1: 3, 3: 4, 4: 5}] 相关文章: