collections 模块对于可迭代数据的处理是非常方便的,下面简单解决对应的高频使用的方法。
1、Counter()
统计可迭代数据的出现次数,统计结果是以字典的方式返回结果,其key是原数据中对应的元素,其value为该元素出现的次数。
创建的方式为 collections.Counter(items())
1 import collections 2 3 foo = 'abcdeeeefgab' 4 t1 = collections.Counter(foo) 5 print(t1)
结果为:Counter({'e': 4, 'a': 2, 'b': 2, 'c': 1, 'd': 1, 'f': 1, 'g': 1})
常用方法:clean()、update()、substract()、most_common()和其他dict类型方法
其中most_common()可以根据字典value的值进行降序排序
例如:c.most_common()[:-n:-1] --取出计数最小的n个元素
2、deque() 双向队列
创建方式为 collections.deque(items())
返回结果为list
如下:
import collections foo = 'abcdeeeefgab' t2 = collections.deque(foo) print(t2)
结果为deque(['a', 'b', 'c', 'd', 'e', 'e', 'e', 'e', 'f', 'g', 'a', 'b'])
区别与单向list的常用方法:
appendleft() 左边插入元素
extendleft() 左边添加所有元素
pop() 、popleft() 取出列表最值
rotate(2) 列表元素向右移动2位,负数向左移动2位