外語不好,機翻勿噴,方便回顧 (逃~
提供計數器工具以支持方便快捷的計數。 例如:
詳細用法:
class collections.Counter([iterable-or-mapping])
Counter是用於計算可哈希對象的字典子類。
它是一個無序的集合,其元素以字典鍵的形式存儲,並將其計數存儲爲字典值。
計數允許爲包括零或負計數的任何整數值。
Counter類與其他語言的bag或multisets類似。
元素從一個迭代中計數或從另一個映射(或計數器)初始化:
翻譯~:
一個新的空的計數器
一個來自迭代器的新計數器
映射中的新計數器
一個來自關鍵字args的新計數器
計數器對象有一個字典接口,只不過它們返回一個零計數而不是引發一個KeyError:
#缺少元素的數量爲零
但是,將計數設置爲零不會從計數器中刪除元素。 使用del完全刪除它:
Counter對象支持超出所有字典可用的三種方法:
elements()
將元素返回到一個迭代器,每次重複的次數與它的次數相同。
元素以任意順序返回。
如果一個元素的數量少於一個,elements()會忽略它。
0 和 -2 都小於最低一個元素的要求,所以不輸出。
most_common([n])
從最常見到最不常見的列表中,列出n個最常見的元素及其數量。
如果省略 n 或 None,most_common()返回計數器中的所有元素。
具有相同計數的元素可以任意排序:
列出同一字符重複數量前3的計數,如果不寫n,則會打印出所有相同元素的計數。
subtract([iterable-or-mapping])
元素從可迭代或從另一個映射(或計數器)中減去。
像dict.update()一樣,但減去計數而不是替換它們。
輸入和輸出都可以是零或負數。
3.2版本中的新功能
通常的字典方法可用於Counter對象,除了兩個針對計數器的工作方式不同。
fromkeys(iterable)
這個類方法沒有爲Counter對象實現。
update([iterable-or-mapping])
元素從一個迭代中計數或從另一個映射(或計數器)加入。
像dict.update()一樣,但增加了計數而不是替換它們。
此外,可迭代預計是一系列元素,而不是(鍵,值)對的序列。
處理Counter對象的常用模式:
#所有計數的總和
#重置所有計數
#列出獨特元素
#轉換爲一個集合
#轉換爲常規字典
#轉換爲(elem,cnt)對列表
#從(elem,cnt)對列表中進行轉換
#n最小公共元素
#刪除零和負數
提供了幾個數學運算,用於組合Counter對象以產生多個集合(計數器的計數大於零)。
加法和減法通過加或減相應元素的計數來組合計數器。
相交和聯合會返回相應計數的最小值和最大值。
每個操作都可以接受帶符號計數的輸入,但輸出將排除計數爲零或更小的結果。
一元加法和減法是添加空白計數器 或 從空白計數器中減去 的快捷方式。
3.3版新增功能:增加了對一元加號,一元減號和就地多重集操作的支持。
注意:
計數器主要用於使用正整數來表示運行計數;但是,注意不要不必要地排除需要其他類型或負值的用例。爲了幫助解決這些用例,本節介紹了最小範圍和類型限制。
Counter類本身是一個字典子類,對其鍵和值沒有限制。這些值旨在表示計數的數字,但您可以在值字段中存儲任何內容。
most_common()方法只要求值是可計數的。
對於就地操作,例如c [key] + = 1,值類型只需要支持加法和減法。所以分數,浮點數和小數將會起作用並且負值被支持。
update()和subtract()同樣適用於輸入和輸出都允許負值和零值的情況。
multiset方法僅用於具有正值的用例。輸入可能爲負值或零,但只能創建正值的輸出。沒有類型限制,但值類型需要支持加法,減法和比較。
elements()方法需要整數計數。它忽略零和負數。