怎樣找出乙個序列**現次數最多的元素?
使用collections
庫中的counter
物件可以方便的求出現次數最多的前n個元素
直接使用most_common
成員函式就好了,例如:
from collections import counter
words = [
'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes',
'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the',
'eyes', "don't", 'look', 'around', 'the', 'eyes', 'look', 'into',
'my', 'eyes', "you're", 'under'
]counter = counter(words)
print(counter.most_common(1))
複製**
輸出
[('eyes', 8)]
複製**
counter
物件是dict
的子類,事實上內部儲存也是按照k-v字典儲存的,這裡的v就是次數,所以counter
物件支援dict
物件的所有操作
每乙個counter
物件初始化可以接受可迭代物件(iterable)、字典、關鍵字引數
>>> c = counter() # a new, empty counter
>>> c = counter('gallahad') # a new counter from an iterable
>>> c = counter(cats=4, dogs=8) # a new counter from keyword args
複製**
此外,counter
物件還支援數學操作
>>> c = counter(a=3, b=1)
>>> d = counter(a=1, b=2)
>>> c + d # add two counters together: c[x] + d[x]
counter()
>>> c - d # subtract (keeping only positive counts)
counter()
>>> c & d # intersection: min(c[x], d[x])
counter()
>>> c | d # union: max(c[x], d[x])
counter()
複製**
所以在遇到跟計數有關的問題時,不妨首先考慮一下counter
物件
python cookbook
python每日一練
人生苦短,我用python 2018.6.5 有個目錄,裡面是你自己寫過的程式,統計一下你寫過多少行 包括空行和注釋,但是要分別列出來 coding utf 8 import re import glob defcodecolletion path filelist glob.glob path p...
Python每日一練
人生苦短,我用python 2018.6.13 最近事情有點多,有幾天沒寫了,正好最近需要統計一下各組排名,也就拿python代替手工了 各組給出其他組的排名,統計每個組最終的得分,第一名為0.5,第二名0.4,以此類推。coding utf 8 groups 3,2,5,4,6 1,3,5,6,4...
Python每日一練0002
如何序列化輸出元素包含字串元組的字串元組 好繞 舉個例子 zoo1 monkey elephant zoo2 python zoo1 將zoo2輸出為python,monkey,elephant容易想到使用join 函式,但join 函式要求元素必須都是字串型別,否則會丟擲typeerror錯誤 z...