- Counter:字典的子类,提供了可哈希对象的计数功能
- defaultdict:字典的子类,提供了一个工厂函数,为字典查询提供了默认值
- OrderedDict:字典的子类,保留了他们被添加的顺序
- namedtuple:创建命名元组子类的工厂函数
- deque:类似列表容器,实现了在两端快速添加(append)和弹出(pop)
- ChainMap:类似字典的容器类,将多个映射集合到一个视图里面
ChainMap
一个 ChainMap 将多个字典或者其他映射组合在一起,创建一个单独的可更新的视图。 如果没有 maps 被指定,就提供一个默认的空字典 。
ChainMap的遍历和Dictionary有点不同,Dictionary是从前往后遍历,而ChainMap是从后往前遍历,而且遇到重复的key值只取最前面的那个。
from collections import ChainMap
d1 = {'apple':1,'banana':2}
d2 = {'orange':2,'apple':3,'pike':1}
combined_d = ChainMap(d1,d2)
reverse_combind_d = ChainMap(d2,d1)
print(combined_d)
print(reverse_combind_d)
for k,v in d1.items():
print(k,v)
for k,v in combined_d.items():
print(k,v)
ChainMap({'apple': 1, 'banana': 2}, {'orange': 2, 'apple': 3, 'pike': 1})
ChainMap({'orange': 2, 'apple': 3, 'pike': 1}, {'apple': 1, 'banana': 2})
apple 1
banana 2
orange 2
apple 1
pike 1
banana 2
|