文章目录1. 简介
- 1. 简介
- 2. 使用
- 3. 分析
Python 标准模块 collections 中的类 Counter 是字典类 dict 的一个子类,该类一般用于对可哈希对象进行计数,有时也被称为多重集合。在 Counter 类的对象中,数据存储方式为:可哈希对象作为键,而可哈希对象的计数作为值进行存储。
2. 使用-
创建 Counter 对象:
>>> from collections import Counter >>> c = Counter('abcdeabcdabcaba') -
获得出现频率最高的元素:
>>> c.most_common(3) [('a', 5), ('b', 4), ('c', 3)] -
列出所有的键:
>>> sorted(c) ['a', 'b', 'c', 'd', 'e']
-
列出所有元素:
>>> ''.join(sorted(c.elements())) 'aaaaabbbbcccdde'
-
计算所有键的频率和:
>>> sum(c.values()) 15
-
获得某可哈希对象的计数:
>>> c['a'] 5
-
根据可迭代对象更新计数:
>>> for elem in 'shazam': ... c[elem] += 1 >>> c['a'] 7 -
删除某可迭代对象:
>>> del c['b'] >>> c['b'] 0
-
合并两个 Counter 对象:
>>> d = Counter('simsalabim') >>> c.update(d) >>> c['a'] 9 >>> c['i'] 2 -
清空 Counter 对象:
>>> c.clear() >>> c['a'] 0
-
需要特别注意的是,当某可哈希对象的计数被设为 0 0 0 或减至 0 0 0 后,该对象将仍然保存在 Counter 对象中直到该对象被删除或 Counter 对象本身被清空:
>>> c = Counter('aaabbc') >>> c['b'] -= 2 >>> c.most_common() [('a', 3), ('c', 1), ('b', 0)] >>> del c['b'] >>> c.most_common() [('a', 3), ('c', 1)]
关于 Counter 对象的其他详细使用,请见 https://www.demo2s.com/python/python-collections-counter.html 。
3. 分析


