Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 有多个 dict,现在需要找出哪个 dict 包含特定 key
- # ChainMap 会将多个 dict 合并为一个,这个合并不是真的合并,也不是创建了一个新的包含所有 dict 的 dict,而是生成了一个列表,容纳这些 dict,并且这个列表支持很多 dict 的 api,因此表现的像是一个新的 dict
- a = {'x': 1, 'z': 3 }
- b = {'y': 2, 'z': 4 }
- from collections import ChainMap c = ChainMap(a,b)
- print(c['x']) # Outputs 1 (from a)
- print(c['y']) # Outputs 2 (from b)
- print(c['z']) # Outputs 3 (from a)。重复的 key 只会取最先出现的 dict 中的值
- len(c) # 3
- list(c.keys()) #['x', 'y', 'z']
- list(c.values()) # [1, 2, 3]
- # 如果是赋值或删除操作,则只会对第一个 dict 生效
- c['z'] = 10 # a['z'] 也变成了 10,但是 b 未受影响
- c['w'] = 40 # a 现在也有了 a['w']==40
- del c['x'] # a 中的 'x' 被删除了
- del c['y'] # 报错,因为 a 中没有 'y' 这个 key
Add Comment
Please, Sign In to add comment