collections的常用类型有:
计数器(Counter)
双向队列(deque)
默认字典(defaultdict)
有序字典(OrderedDict)
可命名元组(namedtuple)
使用以上类型时需要导入模块 from collections import *
Counter计数器
Counter 作为字典(dict)的一个子类用来进行hashtable计数,将元素进行数量统计、计数后返回一个字典,键值为元素:值为元素个数
1 | from collections import Counter |
most_common(int) 按照元素出现的次数进行从高到低的排序,返回前int个元素的字典
1 | from collections import Counter |
elements 返回经过计数器Counter后的元素,返回的是一个迭代器
1 | from collections import Counter |
update
和set集合的update一样,对集合进行并集更新
1 | from collections import Counter |
substract
和update类似,只是update是做加法,substract做减法,从另一个集合中减去本集合的元素
1 | from collections import Counter |
iteritems
与字典dict的items类似,返回由Counter生成的字典的所有item,只是在Counter中此方法返回的是一个迭代器,而不是列表
####iterkeys
与字典dict的keys方法类似,返回由Counter生成的字典的所有key,只是在Counter中此方法返回的是一个迭代器,而不是列表
####itervalues
与字典dict的values方法类似,返回由Counter生成的字典的所有value,只是在Counter中此方法返回的是一个迭代器,而不是列表
deque双向队列
deque 包含在文件_collections.py中,属于高性能的数据结构(High performance data structures)之一,可以从两端添加和删除元素,常用的结构是它的简化版。
1 | from collections import deque |
常用方法
append 队列右边添加元素
appendleft 队列列左边添加元素
clear 清空队列中的所有元素
count 返回队列中包含value的个数
extend 队列右边扩展,可以是列表、元组、字典,字典的话只加入key
extendleft 同extend, 在左边扩展
1 | from collections import deque |
pop 移除并且返回队列右边的元素,不像列表的pop可以传索引删除
popleft 移除并且返回队列左边的元素
remove(value) 移除队列第一个出现的元素(从左往右开始的第一次出现的元素value)
reverse 对原队列的所有元素进行反转,无返回值
rotate(n) 对队列的数进行移动,若n<0,则往左移动即将左边的第一个移动到最后,移动n次,n>0 往右移动0,则往左移动即将左边的第一个移动到最后,移动n次,n>
1 | from collections import deque |
defaultdict默认字典
默认字典,是字典的一个子类,继承有字典的方法和属性,默认字典在进行定义初始化的时候可以指定字典的默认类型。
1 | from collections import defaultdict |
OrderedDict有序字典
OrderDict 叫做有序字典,也是字典类型(dict)的一个子类,是对字典的一个补充。
传统字典是无序的,要排序的话,需要将字典的key取出进行排序,再输出打印。
有序字典的顺序将按照录入顺序进行排序且不会改变。
1 | from collections import OrderedDict |
nametuple有名元组
标准的tuple类型使用数字索引来访问元素,元素多的时候,无法知道每个元素的索引。
nametuple 的创建是由自己的类工厂nametuple()进行创建,而不是由标准的元组来进行实例化,通过nametuple()创建类的参数包括类名称和一个包含元素名称的字符串。