【python】collections模块

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']})
上一篇:1.6 在字典中将键映射到多个值上


下一篇:defaultdict