天天看點

python counter_Python之計數counter

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 或

者負數。