首页 > 代码库 > python-collections模块

python-collections模块

在collections中提供了如下的类:[‘deque‘, ‘defaultdict‘, ‘namedtuple‘, ‘UserDict‘, ‘UserList‘,‘UserString‘, ‘Counter‘, ‘OrderedDict‘, ‘ChainMap‘]

1.namedtuple(): 生成可以使用名字来访问元素内容的tuple子类
2.deque: 双端队列,可以快速的从另外一侧追加和推出对象
3.Counter: 计数器,主要用来计数
4.OrderedDict: 有序字典
5.defaultdict: 带有默认值的字典

参考博客:http://www.cnblogs.com/liupengpengg/p/5593273.html

默认字典

  可以指定字典中值的类型

例如:将[11,22,33,44,55,66,77,88,99]中大于55的数放在‘k1’中,小雨等于55的放在‘k2’中。

from collections import defaultdict

v=[11,22,33,44,55,66,77,88,99]

dic=defaultdict(list)

for i in v:

  if i >55:

    dic[‘k1‘].append(i)

  else:

  dic[‘k2‘].append(i)

print(dic)

结果:defaultdict(<class ‘list‘>, {‘k2‘: [11, 22, 33, 44, 55], ‘k1‘: [66, 77, 88, 99]})

可命名元组

可命名并不是说元组中的元素可以进行修改,是可以将元组中的每个元素指定一个代号,以后就可以通过这个代号来查找这个元素,而不是通过索引。需要注意的是:要用这个类我们需要先创建类,

例如:通过x,y,z来取出元组中的值

from collections import namedtuple

point=namedtuple(‘point‘,[‘x‘,‘y‘,‘z‘])

a=point(11,22,33)

print(a.x,a.y,a.z)

结果:11 22 33

python-collections模块