collections模块是python2.7.3之后新加的功能。
1.1、计数器(Counter)
Counter是对字典类型的补充,用于追踪值的次数
ps:具备字典的所有功能 + 自己的功能
>>> import collections >>> c1=collections.Counter(‘asdasdf‘) >>> print c1 Counter({‘a‘: 2, ‘s‘: 2, ‘d‘: 2, ‘f‘: 1})
1.2、c.update(d):将c、d两个计数器相加
>>> 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() 清空计数器
>>> c Counter({‘a‘: 4, ‘b‘: 2, ‘c‘: 1}) >>> c.clear() >>> c Counter()
2. 有序字典(OrderedDict):
orderedDict是对字典类型的补充,他记住了字典元素的添加顺序
我们知道字典是无序的,列表是有序的,OrderedDict方法原理就是将字典赋值时的key按顺序保存到一个列表中,例如list=[k1,k2,k3,...]。最后将字典的值按key的顺序调用出来
o1 = collections.OrderedDict() o1[‘k1‘] = 1 o1[‘k2‘] = 2 o1[‘k3‘] = 3 >>> o1 OrderedDict([(‘k1‘, 1), (‘k2‘, 2), (‘k3‘, 3)])
3、默认字典(defaultdict):为字典中的values设置一个默认的类型,可以为列表,元组或者字典
例如:
>>> my_dict = collections.defaultdict(list) >>> my_dict[‘k1‘].append(1) >>> my_dict defaultdict(<type ‘list‘>, {‘k1‘: [1]})
这里由于定了了默认values的类型为list,所以后面才能使用append方法,往列表赋值
默认字典2:上面的例子还可以这样写
>>> dic = {} >>> dic[‘k1‘] = [] >>> dic[‘k1‘].append(1) >>> dic {‘k1‘: [1]}
时间: 2024-10-13 05:11:32