溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中如何找出序列中出現(xiàn)次數(shù)最多的元素

發(fā)布時(shí)間:2021-10-26 10:45:12 來(lái)源:億速云 閱讀:247 作者:柒染 欄目:編程語(yǔ)言

Python中如何找出序列中出現(xiàn)次數(shù)最多的元素,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

前言:有一個(gè)元素序列,想知道在序列中出現(xiàn)次數(shù)最多的元素是什么?

collections模塊中國(guó)的Counter類正是為此類問(wèn)題而設(shè)計(jì)的。它甚至有一個(gè)非常方便的most_common()方法可以告訴我們答案??梢越oCounter對(duì)象提供任何可哈希的對(duì)象序列作為輸入。

實(shí)例:假設(shè)一個(gè)列表,其中有一些列的單詞,我們想找出哪些單詞出現(xiàn)的最為頻繁:

from collections import Counter
words=[
'a','b','c','d','e','f',
'a','b','c','d','e','f',
'a','b','c',
'a','b',
'a'
]
#利用Counter統(tǒng)計(jì)每個(gè)元素出現(xiàn)的個(gè)數(shù)
words_counts=Counter(words)
#出現(xiàn)次數(shù)最多的3個(gè)元素
top_three=words_counts.most_common(3)
#返回元素和出現(xiàn)次數(shù)
print(top_three)
#Counter底層是一個(gè)字典,可以在元素和他們出現(xiàn)的次數(shù)之間做映射,例如:
#輸出元素【f】出現(xiàn)的次數(shù)
print(words_counts['f'])
#如果想手動(dòng)增加計(jì)數(shù)個(gè)數(shù),只需要簡(jiǎn)單的自增
words_counts['f']+=1
print(words_counts['f'])
#如果想手動(dòng)增加計(jì)數(shù)個(gè)數(shù),還可以使用update()方法:
#只針對(duì)元素【f】增加一次計(jì)數(shù)
words_counts.update('f')
print(words_counts['f'])
#為所有計(jì)數(shù)增加一次
morewords=[
'a','b','c','d','e','f'
]
words_counts.update(morewords)
print(words_counts['f'])

運(yùn)行結(jié)果:

[('a', 5), ('b', 4), ('c', 3)]
2
3
4
5

Counter對(duì)象另一個(gè)不為人知的特性,那就是他們可以輕松地同各種數(shù)學(xué)運(yùn)算操作結(jié)合起來(lái)使用。

from collections import Counter
words1=[
'a','b','c','d','e','f',
'a','b','c','d','e','f',
'a','b','c',
'a','b',
'a'
]
words2=[
'a','b','c','d','e','f',
'a','b','c',
'a','b',
'a'
]
one=Counter(words1)
two=Counter(words2)
print(one)
print(two)
three=one+two
print(three)
four=one-two
print(four)

運(yùn)行結(jié)果:

Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 2, 'f': 2})
Counter({'a': 4, 'b': 3, 'c': 2, 'd': 1, 'e': 1, 'f': 1})
Counter({'a': 9, 'b': 7, 'c': 5, 'd': 3, 'e': 3, 'f': 3})
Counter({'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1})

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI