Python2.7-collections

collections 模块主要提供了五种特殊类型容器,此外还提供了许多抽象基类用于检查类的接口

1、Counter 对象,主要用于统计出现次数,是dict的一个子类,用法与形式和 dict 很类似

Counter([iterable-or-mapping]):初始化一个Counter对象,用mapping初始化不能直接统计,用iterable会直接统计每个迭代对象的出现次数
elements():返回每个对象,出现了几次就输出几次,各对象间次序随机,返回的是itertools.chain对象
items():返回包含对象和出现次数的 tuple 的 list
most_common([n]):返回n个出现次数最多的对象及其次数,含 tuple 的 list 形式返回
subtract([iterable-or-mapping]):两者相减,可以产生负数
update([iterable-or-mapping]):与dict直接替换更新不同,counter执行的是两者的加和

2、deque 对象,是一个双向列表,首尾添加删除元素效率高,可以用于获取文件的最后几行

deque([iterable[, maxlen]]):初始化时指定了 maxlen 则 deque 的元素上限为 maxlen,超过 maxlen 时新添加的元素加入到 deque 尾部,前部元素会被删除
append(x),appendleft(x),extend(iterable),extendleft(iterable):添加元素的函数
clear():清空元素
pop(),popleft():弹出元素
remove(value):移除第一个出现的value
reverse():反转
rotate(n):将n个元素移到另一边,n为负数时从前移动

3、defaultdict 对象,指定默认类型的一种dict,是dict的子类
defaultdict([default_factory[, ...]]):default_factory 即为指定的默认类型,新添加的 key 的 value 会默认为指定类型

4、namedtuple() 函数,创建一个新类,是tuple的子类,可以用指定的名字来访问元素,也可以用下标,当用于从csv读取数据时较为好用
namedtuple(typename, field_names[, verbose=False][, rename=False]):typename为新类的名字,fieldnames为指定的名字,可以用列表也可以用逗号或空格分割的字符串,verbose为True时打印类的定义,rename
可以用装饰器对创建的类添加新功能

5、OrderedDict 对象,除了有顺序外,和普通dict一样,凡是用dict的地方都可以用OrderedDict 替换
OrderedDict([items]):新加入的如果原来就有则覆盖,顺序不变,删了再加则加在最后
popitem(last=True):弹出最后一组,若False则弹出第一组

---------------- 坚持每天学习一点点
原文地址:https://www.cnblogs.com/tccbj/p/7928522.html