|
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=[k1,k2,k3,...]。最后将字典的值按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': [1]})
|
这里由于定了了默认values的类型为list,所以后面才能使用append方法,往列表赋值
默认字典2:上面的例子还可以这样写
1
2
3
4
5
| >>> dic = {}
>>> dic['k1'] = []
>>> dic['k1'].append(1)
>>> dic
{'k1': [1]}
|
|
|
|