第二章:数据结构-collections:容器数据类型-Counter:统计可散列的对象(1)

2.2.2 Counter:统计可散列的对象
Counter是一个容器,可以跟踪等效值增加的次数。这个类可以用来实现其他语言中常用包(bag)或多集合(multiset)数据结构实现的算法。

2.2.2.1 初始化
Counter支持3种形式的初始化。调用Counter的构造函数时可以提供一个元素序列或者一个包含键和计数的字典,还可以使用关键字参数将字符串名映射到计数。

import collections

print(collections.Counter(['a','b','c','a','b','b']))
print(collections.Counter({'a':2,'b':3,'c':1}))
print(collections.Counter(a=2,b=3,c=1))

这3种形式的初始化结果都是一样的。
运行结果:

Counter({‘b’: 3, ‘a’: 2, ‘c’: 1})
Counter({‘b’: 3, ‘a’: 2, ‘c’: 1})
Counter({‘b’: 3, ‘a’: 2, ‘c’: 1})

如果不提供任何参数,则可以构造一个空Counter,然后通过update()方法填充。

import collections

c = collections.Counter()
print('Initial:',c)

c.update('abcdaab')
print('Sequence:',c)

c.update({'a':1,'d':5})
print('Dict:',c)

计数值只会根据数据增加,替换数据并不会改变计数。在下面的例子中,a的计数会从3增加到4
运行结果:

Initial: Counter()
Sequence: Counter({‘a’: 3, ‘b’: 2, ‘c’: 1, ‘d’: 1})
Dict : Counter({‘d’: 6, ‘a’: 4, ‘b’: 2, ‘c’: 1})

你可能感兴趣的:(Python标准库)