collections
在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。
1.namedtuple
生成可以使用名字来访问元素内容的tuple
代码:
from collections import namedtuple
Point = namedtuple('tu',["a","b","c"])
p = Point(11, 20,10)
print(p)
结果:
代码:
tu(a=11, b=20, c=10)
2.deque
双端队列,可以快速的从另外一侧追加和推出对象
代码:
from collections import deque
lst = deque([1,2,3,4,5,6,7])
print(lst)
lst.append(8) # 默认在结尾添加值
print(lst)
lst.appendleft(0) # 想队头添加值
print(lst)
lst.pop() # 默认删除右边
print(lst)
lst.popleft() # 删除左边
print(lst)
结果:
deque([1, 2, 3, 4, 5, 6, 7])
deque([1, 2, 3, 4, 5, 6, 7, 8])
deque([0, 1, 2, 3, 4, 5, 6, 7, 8])
deque([0, 1, 2, 3, 4, 5, 6, 7])
deque([1, 2, 3, 4, 5, 6, 7])
3.Counter
计数器,主要用来计数
代码:
from collections import Counter
s = "aaabbbcc"
print(Counter(s))
结果:
Counter({'a': 3, 'b': 3, 'c': 2})
4.defaultdict
带有默认值的字典
代码:
from collections import defaultdict
dic = defaultdict(list)
dic["key1"].append("abc")
dic["key2"].append("123")
print(dic)
结果:
defaultdict(<class 'list'>, {'key1': ['abc'], 'key2': ['123']})