1、Pythonic的计数方法----collections.Counter。
看例子:
>>> from collections import Counter
>>> test_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
>>> print Counter(test_data)
Counter({'a': 3, 4: 2, 5: 2, '2': 2, 2: 1, 'b': 1, 7: 1, 'z': 1, 'd': 1})
Counter 类是自 Python2.7 起增加的,属于字典类的子类,是一个容器对象,主要用来统计散列对象,支持集合操作 +、-、&、|,其中 & 和 | 操作分别返回两个 Counter 对象各元素
的最小值和最大值。
可以使用 elements() 方法来获取 Counter 中的 key 值。
>>> list(Counter(some_data).elements())
['a', 'a', 'a', 2, 'b', 4, 4, 5, 5, 7, '2', '2', 'z', 'd']
利用 most_common() 方法可以找出前 N 个出现频率最高的元素以及它们对应的次数。
>>> Counter(some_data).most_common(2)
[('a', 3), (4, 2)]
当访问不存在的元素时,默认返回为 0 而不是抛出 KeyError 异常。
>>> (Counter(some_data))['y']
update() 方法用于被统计对象元素的更新,原有 Counter 计数器对象与新增元素的统计
计数值相加而不是直接替换它们。
subtract() 方法用于实现计数器对象中元素统计值相减,输入和输出的统计值允许为 0 或
者负数。