python collections 模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python collections 模块相关的知识,希望对你有一定的参考价值。

collections 模块里有一些比较好用的类型,是一些基础类型的扩展,是必要会的模块之一


  1. Counter (计数器)

        可以追踪值出现的次数,且是由大到小排列出来

>>> import collections
>>> c1 = collections.Counter(‘adadwefffcvcc‘)
>>> c1
Counter({‘c‘: 3, ‘f‘: 3, ‘a‘: 2, ‘d‘: 2, ‘e‘: 1, ‘w‘: 1, ‘v‘: 1})





2.OrderedDict (有序字典)

        python中字典类型是无序的,有的时候无序不方便,可以用OrderedDict,来生成有序字典,顺序是按插入的顺序。

>>> import collections
>>> d = dict([(‘k1‘,11),(‘k2‘,22),(‘k3‘,33)])
>>> d
{‘k3‘: 33, ‘k2‘: 22, ‘k1‘: 11}
>>> order_d = collections.OrderedDict([(‘k1‘,11),(‘k2‘,22),(‘k3‘,33)])
>>> order_d
OrderedDict([(‘k1‘, 11), (‘k2‘, 22), (‘k3‘, 33)])




3.defaultdict (默认字典)

        为字典里的 value 设置一个默认类型,可以是list ,tuple等

>>> import collections
>>> dic = collections.defaultdict(list)
>>> dic[‘k1‘].append(1)
>>> dic
defaultdict(<type ‘list‘>, {‘k1‘: [1]})
>>> dic = {}
>>> dic[‘k1‘] = []
>>> dic[‘k1‘].append(1)
>>> dic
{‘k1‘: [1]}

 




4.namedtuple (可命名元组)

        这个和一般的元组创建过程不一样,一般的元组是用python中已经存在的类创建对象,再使用对象,再是先创建类,在通过这个类创建对象,再使用对象。它是python中元组的子类,继承python中元组的方法。

>>> import collections
>>> Mytuple = collections.namedtuple(‘Mytuple‘,[‘x‘,‘y‘])
>>> new = Mytuple(1,2)
>>> print new
Mytuple(x=1, y=2)
>>> new.x
1
>>> new.y
2





5.deque (双向队列)

        两头都可以取,都可以插,大大提高了插入和删除效率

>>> import collections
>>> d = collections.deque([11,22,55,66])
>>> d
deque([11, 22, 55, 66])


本文出自 “楚水君” 博客,请务必保留此出处http://artvary.blog.51cto.com/10506823/1894589

以上是关于python collections 模块的主要内容,如果未能解决你的问题,请参考以下文章

python 必须模块collections

Python笔记五(collections模块)

Python 常用模块 -- collections模块,time模块,random模块,os模块,sys模块

金蝶handler中 collection 代码片段理解

常用python日期日志获取内容循环的代码片段

python全栈开发第九篇Python常用模块一(主要是re正则和collections)