最近在看一本名叫《Python Algorithm: Mastering Basic Algorithms in the Python Language》的書,,剛好看到提到這個Counter類(P84的Listing 4.6下的Tip),。 1.collections模塊collections模塊自Python 2.4版本開始被引入,包含了dict,、set,、list、tuple以外的一些特殊的容器類型,,分別是:
文檔參見:http://docs./2/library/collections.html,。 2.Counter類Counter類的目的是用來跟蹤值出現(xiàn)的次數(shù),。它是一個無序的容器類型,以字典的鍵值對形式存儲,,其中元素作為key,,其計(jì)數(shù)作為value。計(jì)數(shù)值可以是任意的Interger(包括0和負(fù)數(shù)),。Counter類和其他語言的bags或multisets很相似,。 2.1 創(chuàng)建下面的代碼說明了Counter類創(chuàng)建的四種方法: Counter類的創(chuàng)建
Python
2.2 計(jì)數(shù)值的訪問與缺失的鍵當(dāng)所訪問的鍵不存在時,,返回0,而不是KeyError,;否則返回它的計(jì)數(shù),。 計(jì)數(shù)值的訪問
Python 2.3 計(jì)數(shù)器的更新(update和subtract)可以使用一個iterable對象或者另一個Counter對象來更新鍵值,。 計(jì)數(shù)器的更新包括增加和減少兩種,。其中,增加使用update()方法: 計(jì)數(shù)器的更新(update)
Python
減少則使用subtract()方法: 計(jì)數(shù)器的更新(subtract)
Python 2.4 鍵的刪除當(dāng)計(jì)數(shù)值為0時,,并不意味著元素被刪除,,刪除元素應(yīng)當(dāng)使用 鍵的刪除
Python
2.5 elements()返回一個迭代器,。元素被重復(fù)了多少次,,在該迭代器中就包含多少個該元素。所有元素按照字母序排序,,個數(shù)小于1的元素不被包含,。 elements()方法
Python
2.6 most_common([n])返回一個TopN列表。如果n沒有被指定,,則返回所有元素,。當(dāng)多個元素計(jì)數(shù)值相同時,按照字母序排列,。 most_common()方法
Python
2.7 fromkeys未實(shí)現(xiàn)的類方法,。 2.8 淺拷貝copy淺拷貝copy
Python
2.9 算術(shù)和集合操作+、-,、&,、|操作也可以用于Counter。其中&和|操作分別返回兩個Counter對象各元素的最小值和最大值,。需要注意的是,,得到的Counter對象將刪除小于1的元素。 Counter對象的算術(shù)和集合操作
Python
3.常用操作下面是一些Counter類的常用操作,,來源于Python官方文檔 Counter類常用操作
Python
本文內(nèi)容遵從CC3.0版權(quán)協(xié)議,轉(zhuǎn)載請注明:轉(zhuǎn)自Pythoner |
|