Python找出列表中出現(xiàn)次數(shù)最多的元素三種方式
通過(guò)三種方式給大家介紹,具體詳情如下所示:
方式一:
原理:創(chuàng)建一個(gè)新的空字典,用循環(huán)的方式來(lái)獲取列表中的每一個(gè)元素,判斷獲取的元素是否存在字典中的key,如果不存在的話(huà),將元素作為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ù),如果鍵不存在于字典中,將會(huì)添加鍵并將值設(shè)為默認(rèn)值。
打個(gè)比方,我們要查找的這個(gè)鍵不在字典中,我們先將它置為0,然后再加1,再查找到這個(gè)鍵的時(shí)候,這個(gè)時(shí)候它是存在這個(gè)字典里面的,故這個(gè)setdefault函數(shù)不生效,然后我們?cè)侔汛螖?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ù),如果鍵不存在于字典中,將會(huì)添加鍵并將值設(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類(lèi)
這個(gè)模塊很強(qiáng)大,尤其是這個(gè)類(lèi)。他可以直接幫我們計(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個(gè)元素,類(lèi)型為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類(lèi)支持collections.Counter類(lèi)型的相加和相減
也就是用Counter(words)之后,這個(gè)類(lèi)型是可以相加減的,只支持相加減
例子:
print(collection_words + collection_words)
這里要注意:不能為了圖方便進(jìn)行collection_words * 2,因?yàn)轭?lèi)型不同,2為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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python統(tǒng)計(jì)列表中元素出現(xiàn)次數(shù)的三種方法
- Python統(tǒng)計(jì)列表中每個(gè)元素出現(xiàn)次數(shù)的4種實(shí)現(xiàn)
- Python統(tǒng)計(jì)列表元素出現(xiàn)次數(shù)的方法示例
- python 實(shí)現(xiàn)返回一個(gè)列表中出現(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)文章
Python+PyQt5編寫(xiě)圖片格式轉(zhuǎn)換器
這篇文章主要為大家詳細(xì)介紹了如何利用Python和PyQt5編寫(xiě)一個(gè)簡(jiǎn)單的圖片格式轉(zhuǎn)換器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下2023-07-07
Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法
今天小編就為大家分享一篇Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
如何使用Python判斷應(yīng)用是否處于已打包狀態(tài)
在使用 PyInstaller 打包 Python 應(yīng)用時(shí),有時(shí)需要在代碼中判斷程序是否處于“打包狀態(tài)”,本文將介紹幾種方法來(lái)判斷是否處于打包狀態(tài),感興趣的可以了解下2025-03-03
Python中sort函數(shù)正則表達(dá)式的使用
在python中,sort是列表排序的一種方法,本文就來(lái)介紹一下sort函數(shù)正則表達(dá)式的使用以及與sorted的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
pandas如何使用列表和字典創(chuàng)建?Series
這篇文章主要介紹了pandas如何使用列表和字典創(chuàng)建?Series,pandas 是基于NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,下文我們就來(lái)看看文章是怎樣介紹pandas,需要的朋友也可以參考一下2021-12-12
在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程
這篇文章主要介紹了在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程,包括安裝supervisor來(lái)管理進(jìn)程的用法,整套配下來(lái)相當(dāng)實(shí)用,需要的朋友可以參考下2016-06-06
如何將DataFrame數(shù)據(jù)寫(xiě)入csv文件及讀取
在Python中進(jìn)行數(shù)據(jù)處理時(shí),經(jīng)常會(huì)用到CSV文件的讀寫(xiě)操作,當(dāng)需要將list數(shù)據(jù)保存到CSV文件時(shí),可以使用內(nèi)置的csv模塊,若data是一個(gè)list,saveData函數(shù)能夠?qū)ist中每個(gè)元素存儲(chǔ)在CSV文件的一行,但需要注意的是,默認(rèn)情況下讀取出的CSV數(shù)據(jù)類(lèi)型為str2024-09-09
在python中利用dict轉(zhuǎn)json按輸入順序輸出內(nèi)容方式
今天小編就為大家分享一篇在python中利用dict轉(zhuǎn)json按輸入順序輸出內(nèi)容方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
使用python下載大型文件顯示進(jìn)度條和下載時(shí)間的操作代碼
大家都知道下載大型文件時(shí)存在一個(gè)問(wèn)題,那就是內(nèi)存使用量迅速上升,可能會(huì)造成電腦卡死,所以我們需要換一個(gè)方式進(jìn)行下載,這篇文章主要介紹了使用python下載大型文件的方法顯示進(jìn)度條和下載時(shí)間,需要的朋友可以參考下2022-11-11

