永夜海 发表于 2018-8-15 12:05:11

python collections 模块

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

[*]  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': })
  
>>> dic = {}
  
>>> dic['k1'] = []
  
>>> dic['k1'].append(1)
  
>>> dic
  
{'k1': }
  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()
  
>>> d
  
deque()
  ,
页: [1]
查看完整版本: python collections 模块