Counter
Counter
是一个简单的计数器,可以统计一段字符串中各个元素出现的次数:
import collections counter_1=collections.Counter('kjsdkfhajksdfkljajkjds') print(counter_1) Counter({'j': 5, 'k': 5, 's': 3, 'd': 3, 'a': 2, 'f': 2, 'l': 1, 'h': 1})
当然counter也可以统计列表中每个元素出现的次数:
list_1=[1,2,3,1,1,2,] counter_2=collections.Counter(list_1) print(counter_2) Counter({1: 3, 2: 2, 3: 1})
counter是对字典类型的一个补充,它具有字典的所有功能。
OrderedDict
有序字典也是对字典的一个补充,顾名思义,他是对key进行序列化的特殊的字典:
>>> import collections >>> d1={'k1':11,'k2':22} >>> d=collections.OrderedDict(d1) >>> print(d) OrderedDict([('k1', 11), ('k2', 22)])
defaultdict
默认字典是一种特殊的字典,它定义了当指定的字典的键不存在时,返回的默认值。
d=collections.defaultdict(list) print(d['k1']) []
namedtuple
这个功能一般在坐标表示时较为常用,
>>> t1=collections.namedtuple('t1',['x','y',]) #定义一个名为t1的功能,该功能可以实现以x,y为索引的由两个元素组成的tuple >>> t=t1(11,22) >>> t.x #效果等同于t[0] 1
namedtuple
是一个函数,它用来创建一个自定义的tuple
对象,并且规定了tuple
元素的个数,并可以用属性而不是索引来引用tuple
的某个元素。
deque
特殊的list,具有list的所有功能。它是双向队列,不管是首部还是尾部都可以进行添加和删除。与之相对的是queue,单向队列(FIFO 先进先出)
>>> q=collections.deque([1,2,3]) >>> print(q) deque([1, 2, 3]) >>> q.extend([2,3]) >>> print(q) deque([1, 2, 3, 2, 3]) >>> q.extendleft([2,3]) >>> print(q) deque([3, 2, 1, 2, 3, 2, 3]) #append也有,当然也有appendleft