Python找出列表中出現(xiàn)次數(shù)最多的元素三種方式
通過(guò)三種方式給大家介紹,具體詳情如下所示:
方式一:
原理:創(chuàng)建一個(gè)新的空字典,用循環(huán)的方式來(lái)獲取列表中的每一個(gè)元素,判斷獲取的元素是否存在字典中的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ù),如果鍵不存在于字典中,將會(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類
這個(gè)模塊很強(qiáng)大,尤其是這個(gè)類。他可以直接幫我們計(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è)元素,類型為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)之后,這個(gè)類型是可以相加減的,只支持相加減
例子:
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)容請(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)文章
Tensorflow進(jìn)行多維矩陣的拆分與拼接實(shí)例
今天小編就為大家分享一篇Tensorflow進(jìn)行多維矩陣的拆分與拼接實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python 對(duì)象序列化與反序列化之pickle json詳細(xì)解析
我們知道在Python中,一切皆為對(duì)象,實(shí)例是對(duì)象,類是對(duì)象,元類也是對(duì)象。本文正是要聊聊如何將這些對(duì)象有效地保存起來(lái),以供后續(xù)使用2021-09-09解決Django no such table: django_session的問(wèn)題
這篇文章主要介紹了解決Django no such table: django_session的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python實(shí)現(xiàn)統(tǒng)計(jì)單詞出現(xiàn)的個(gè)數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)統(tǒng)計(jì)單詞出現(xiàn)的個(gè)數(shù),本文給出了實(shí)現(xiàn)代碼以及使用方法,需要的朋友可以參考下2015-05-05Python+騰訊云服務(wù)器實(shí)現(xiàn)每日自動(dòng)健康打卡
本文主要介紹了通過(guò)Python+騰訊云服務(wù)器實(shí)現(xiàn)每日自動(dòng)健康打卡,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12詳解如何優(yōu)化和調(diào)整Python中Scrapy的性能
在本篇高級(jí)教程中,我們將深入探討如何優(yōu)化和調(diào)整Scrapy爬蟲的性能,以及如何處理更復(fù)雜的抓取任務(wù),如登錄,處理Cookies和會(huì)話,以及避免爬蟲被網(wǎng)站識(shí)別和封鎖,需要的朋友可以參考下2023-09-09Python中os.system()、subprocess.run()、call()、check_output()的使用
這篇文章主要介紹了Python中os.system()、subprocess.run()、call()、check_output()的使用案例,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07