collection是python内建的一个集合模块,包含很多集合类,比如栈队列元组等。
常用函数:
deque:创建双向队列,可以高效实现插入和删除操作,适合用于队列和栈
append:往右边添加一个元素
appenleft:往左边添加一个元素
用法:
from collections import deque
queue = deque(["Eric", "John", "Michael"])
queue.append("Terry") # Terry 入队
queue.append("Graham") # Graham 入队
popleft:获取最左边的一个元素,并在队列中删除
pop: 获取最右边的元素,并在队列中删除
用法(接上面):
queue.popleft() # 队首元素出队
#输出: 'Eric'
queue.pop() # 队首元素出队
#输出: 'Graham'
print(queue) # 队列中剩下的元素
#输出: deque(['John', 'Michael', 'Terry'])
上面是双向队列的几个函数,collections还有很多种类。
比如:
defaultdict,当使用dict时,若应用的key不存在,可以使用defauldict返回一个默认值
用法:
>>> from collections import defaultdict
>>> dd = defaultdict(lambda: 'N/A')
>>> dd['key1'] = '123'
>>> dd['key1'] # key1存在
'123'
>>> dd['key2'] # key2不存在,返回默认值
'N/A'
注意默认值时调用函数返回的,函数在创建defaultdict对象时传入。
还有常用的计数器:
Counter: 简单的计数器,可以用来统计次数
用法:
>>> from collections import Counter
>>> c = Counter()
>>> for ch in 'programming':
... c[ch] = c[ch] + 1
...
>>> c
Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})
还有一些比如有序字典,可命名元组等类,可以自己去了解。