yjhfgdfd 发表于 2016-7-11 09:14:53

collections系列功能介绍

collections模块是python2.7.3之后新加的功能。

1.1、计数器(Counter)
Counter是对字典类型的补充,用于追踪值的次数
ps:具备字典的所有功能 + 自己的功能

1
2
3
4
>>> import collections
>>> c1=collections.Counter('asdasdf')
>>> print c1
Counter({'a': 2, 's': 2, 'd': 2, 'f': 1})





1.2、c.update(d):将c、d两个计数器相加


1
2
3
4
5
6
7
8
9
>>> c = collections.Counter('aabc')
>>> c
Counter({'a': 2, 'c': 1, 'b': 1})
>>> d=collections.Counter('aab')
>>> d
Counter({'a': 2, 'b': 1})
>>> c.update(d)
>>> c
Counter({'a': 4, 'b': 2, 'c': 1})





1.3 clear()清空计数器


1
2
3
4
5
>>> c
Counter({'a': 4, 'b': 2, 'c': 1})
>>> c.clear()
>>> c
Counter()





2. 有序字典(OrderedDict):

1
orderedDict是对字典类型的补充,他记住了字典元素的添加顺序




我们知道字典是无序的,列表是有序的,OrderedDict方法原理就是将字典赋值时的key按顺序保存到一个列表中,例如list=。最后将字典的值按key的顺序调用出来

1
2
3
4
5
6
o1 = collections.OrderedDict()
o1['k1'] = 1
o1['k2'] = 2
o1['k3'] = 3
>>> o1
OrderedDict([('k1', 1), ('k2', 2), ('k3', 3)])





3、默认字典(defaultdict):为字典中的values设置一个默认的类型,可以为列表,元组或者字典
例如:

1
2
3
4
>>> my_dict = collections.defaultdict(list)
>>> my_dict['k1'].append(1)
>>> my_dict
defaultdict(<type 'list'>, {'k1': })




这里由于定了了默认values的类型为list,所以后面才能使用append方法,往列表赋值

默认字典2:上面的例子还可以这样写

1
2
3
4
5
>>> dic = {}
>>> dic['k1'] = []
>>> dic['k1'].append(1)
>>> dic
{'k1': }






页: [1]
查看完整版本: collections系列功能介绍