Python找出列表中出現(xiàn)次數(shù)最多的元素三種方式
通過三種方式給大家介紹,具體詳情如下所示:
方式一:
原理:創(chuàng)建一個新的空字典,用循環(huán)的方式來獲取列表中的每一個元素,判斷獲取的元素是否存在字典中的key,如果不存在的話,將元素作為key,值為列表中元素的count
# 字典方法 words = [ 'my', 'skills', 'are', 'poor', 'I', 'am', 'poor', 'I', 'need', 'skills', 'more', 'my', 'ability', 'are', 'so', 'poor' ] dict1 = {} for i in words: if i not in dict1.keys(): dict1[i] = words.count(i) print(dict1)
運(yùn)行結(jié)果:
{'my': 2, 'skills': 2, 'are': 2, 'poor': 3, 'I': 2, 'am': 1, 'need': 1, 'more': 1, 'ability': 1, 'so': 1}
方式二
原理:使用setdefault函數(shù),setdefault()函數(shù),如果鍵不存在于字典中,將會添加鍵并將值設(shè)為默認(rèn)值。
打個比方,我們要查找的這個鍵不在字典中,我們先將它置為0,然后再加1,再查找到這個鍵的時候,這個時候它是存在這個字典里面的,故這個setdefault函數(shù)不生效,然后我們再把次數(shù)加1
words = [ 'my', 'skills', 'are', 'poor', 'I', 'am', 'poor', 'I', 'need', 'skills', 'more', 'my', 'ability', 'are', 'so', 'poor' ] d = dict() for item in words: # setdefault()函數(shù),如果鍵不存在于字典中,將會添加鍵并將值設(shè)為默認(rèn)值 d[item] = d.setdefault(item, 0) + 1 print(d)
運(yùn)行結(jié)果:
{'my': 2, 'skills': 2, 'are': 2, 'poor': 3, 'I': 2, 'am': 1, 'need': 1, 'more': 1, 'ability': 1, 'so': 1}
方式三
原理:使用collections模塊的Counter類
這個模塊很強(qiáng)大,尤其是這個類。他可以直接幫我們計(jì)數(shù),然后再幫我們排序好。從大到小
from collections import Counter words = [ 'my', 'skills', 'are', 'poor', 'I', 'am', 'poor', 'I', 'need', 'skills', 'more', 'my', 'ability', 'are', 'so', 'poor' ] collection_words = Counter(words) print(collection_words) print(type(collection_words))
運(yùn)行結(jié)果:
Counter({'poor': 3, 'my': 2, 'skills': 2, 'are': 2, 'I': 2, 'am': 1, 'need': 1, 'more': 1, 'ability': 1, 'so': 1})
<class 'collections.Counter'>
還可以輸出頻率最大的n個元素,類型為list
most_counterNum = collection_words.most_common(3) print(most_counterNum) print(type(most_counterNum))
運(yùn)行結(jié)果:
[('poor', 3), ('my', 2), ('skills', 2)]
<class 'list'>
附
ounter類支持collections.Counter類型的相加和相減
也就是用Counter(words)之后,這個類型是可以相加減的,只支持相加減
例子:
print(collection_words + collection_words)
這里要注意:不能為了圖方便進(jìn)行collection_words * 2,因?yàn)轭愋筒煌?為int,故不能進(jìn)行運(yùn)算
運(yùn)行結(jié)果:
Counter({'poor': 6, 'my': 4, 'skills': 4, 'are': 4, 'I': 4, 'am': 2, 'need': 2, 'more': 2, 'ability': 2, 'so': 2})
總結(jié)
到此這篇關(guān)于Python找出列表中出現(xiàn)次數(shù)最多的元素三種方式的文章就介紹到這了,更多相關(guān)python找出出現(xiàn)次數(shù)最多的元素內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python統(tǒng)計(jì)列表中元素出現(xiàn)次數(shù)的三種方法
- Python統(tǒng)計(jì)列表中每個元素出現(xiàn)次數(shù)的4種實(shí)現(xiàn)
- Python統(tǒng)計(jì)列表元素出現(xiàn)次數(shù)的方法示例
- python 實(shí)現(xiàn)返回一個列表中出現(xiàn)次數(shù)最多的元素方法
- Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法
- Python統(tǒng)計(jì)列表中的重復(fù)項(xiàng)出現(xiàn)的次數(shù)的方法
- Python計(jì)算元素在列表中出現(xiàn)的次數(shù)實(shí)例
相關(guān)文章
Tensorflow進(jìn)行多維矩陣的拆分與拼接實(shí)例
今天小編就為大家分享一篇Tensorflow進(jìn)行多維矩陣的拆分與拼接實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python 對象序列化與反序列化之pickle json詳細(xì)解析
我們知道在Python中,一切皆為對象,實(shí)例是對象,類是對象,元類也是對象。本文正是要聊聊如何將這些對象有效地保存起來,以供后續(xù)使用2021-09-09解決Django no such table: django_session的問題
這篇文章主要介紹了解決Django no such table: django_session的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python實(shí)現(xiàn)統(tǒng)計(jì)單詞出現(xiàn)的個數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)統(tǒng)計(jì)單詞出現(xiàn)的個數(shù),本文給出了實(shí)現(xiàn)代碼以及使用方法,需要的朋友可以參考下2015-05-05Python+騰訊云服務(wù)器實(shí)現(xiàn)每日自動健康打卡
本文主要介紹了通過Python+騰訊云服務(wù)器實(shí)現(xiàn)每日自動健康打卡,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12詳解如何優(yōu)化和調(diào)整Python中Scrapy的性能
在本篇高級教程中,我們將深入探討如何優(yōu)化和調(diào)整Scrapy爬蟲的性能,以及如何處理更復(fù)雜的抓取任務(wù),如登錄,處理Cookies和會話,以及避免爬蟲被網(wǎng)站識別和封鎖,需要的朋友可以參考下2023-09-09Python中os.system()、subprocess.run()、call()、check_output()的使用
這篇文章主要介紹了Python中os.system()、subprocess.run()、call()、check_output()的使用案例,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07