Counter 是 dictionary 對象的子類蝙寨。collections 模塊中的 Counter() 函數(shù)會接收一個諸如 list 或 tuple 的迭代器,然后返回一個 Counter dictionary。這個 dictionary 的鍵是該迭代器中的唯一元素铜秆,每個鍵的值是迭代器元素的計數(shù)誓琼。
首先,我們需要從 collections 包中導(dǎo)入 Counter:
from collections import Counter
如果要創(chuàng)建一個 Counter 對象巍扛,我們也要像對待其他對象類一樣领跛,先將它分配給一個變量,而傳遞給 Counter 對象的惟一變量即是迭代器电湘。
list = [1, 2, 3, 3, 2, 1, 1, 1, 2, 2, 3, 1, 2, 1, 1]
counter = Counter(list)
如果我們使用簡單的 print 函數(shù)(print(counter))把這個 Counter 打印出來隔节,則會得到一些與 dictionary 稍微類似的輸出:
Counter({1: 7, 2: 5, 3: 3})
你可以用這些鍵值訪問任何 Counter 項。這與從標(biāo)準(zhǔn)的 Python dictionary 中獲取元素的方法完全相同寂呛。
lst = [1, 2, 3, 3, 2, 1, 1, 1, 2, 2, 3, 1, 2, 1, 1]
counter = Counter(lst)
print(counter[1])
7
most_common() 函數(shù)
目前來說怎诫,Counter 對象中最有用的函數(shù)是 most_common()。當(dāng)它應(yīng)用于一個 Counter 對象時贷痪,會返回一個 list幻妓,這個 list 包含了前 N 個常見的元素及其計數(shù),它們按照常見度降序排列劫拢。
lst = [1, 2, 3, 3, 2, 1, 1, 1, 2, 2, 3, 1, 2, 1, 1]
counter = Counter(lst)
print(counter.most_common(2))
上述代碼會打印出以下 tuples 的 list肉津。
[(1, 7), (2, 5)]
每個 tuple 的首個元素是 list 中的唯一項,第二個元素是計數(shù)值舱沧。對于「獲取 list 中前 3 常見的元素及其計數(shù)」這樣的問題妹沙,這會是一種快速且簡單的方法。
from collections import Counter計數(shù)器_Python_ch_improve的博客-CSDN博客