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)大,尤其是這個類。他可以直接幫我們計數(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,因為類型不同,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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法
今天小編就為大家分享一篇Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
如何使用Python判斷應(yīng)用是否處于已打包狀態(tài)
在使用 PyInstaller 打包 Python 應(yīng)用時,有時需要在代碼中判斷程序是否處于“打包狀態(tài)”,本文將介紹幾種方法來判斷是否處于打包狀態(tài),感興趣的可以了解下2025-03-03
Python中sort函數(shù)正則表達(dá)式的使用
在python中,sort是列表排序的一種方法,本文就來介紹一下sort函數(shù)正則表達(dá)式的使用以及與sorted的區(qū)別,具有一定的參考價值,感興趣的可以了解一下2024-03-03
pandas如何使用列表和字典創(chuàng)建?Series
這篇文章主要介紹了pandas如何使用列表和字典創(chuàng)建?Series,pandas 是基于NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,下文我們就來看看文章是怎樣介紹pandas,需要的朋友也可以參考一下2021-12-12
在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程
這篇文章主要介紹了在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程,包括安裝supervisor來管理進(jìn)程的用法,整套配下來相當(dāng)實用,需要的朋友可以參考下2016-06-06
如何將DataFrame數(shù)據(jù)寫入csv文件及讀取
在Python中進(jìn)行數(shù)據(jù)處理時,經(jīng)常會用到CSV文件的讀寫操作,當(dāng)需要將list數(shù)據(jù)保存到CSV文件時,可以使用內(nèi)置的csv模塊,若data是一個list,saveData函數(shù)能夠?qū)ist中每個元素存儲在CSV文件的一行,但需要注意的是,默認(rèn)情況下讀取出的CSV數(shù)據(jù)類型為str2024-09-09
在python中利用dict轉(zhuǎn)json按輸入順序輸出內(nèi)容方式
今天小編就為大家分享一篇在python中利用dict轉(zhuǎn)json按輸入順序輸出內(nèi)容方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
使用python下載大型文件顯示進(jìn)度條和下載時間的操作代碼
大家都知道下載大型文件時存在一個問題,那就是內(nèi)存使用量迅速上升,可能會造成電腦卡死,所以我們需要換一個方式進(jìn)行下載,這篇文章主要介紹了使用python下載大型文件的方法顯示進(jìn)度條和下載時間,需要的朋友可以參考下2022-11-11

