Python面試題之統(tǒng)計(jì)哈希列表中最多元素
問題
有一個(gè)元素序列,想知道在序列中出現(xiàn)次數(shù)最多的元素是什么
解決方案
collections 模塊中的 Counter 類轉(zhuǎn)讓給女士為此問題所設(shè)計(jì)的。它甚至有一個(gè)非常方便的most_common()方法可以直接告訴我們答案。
為了說明用法,假設(shè)有一個(gè)列表,列表中是一系列的單詞,我們想找出哪些單詞出現(xiàn)的最為頻繁。
下面是我們的做法:
words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the', 'eyes', "don't", 'look', 'around', 'the', 'eyes', 'look', 'into', 'my', 'eyes', "you're", 'under' ] from collections import Counter word_counts = Counter(words) top_three = word_counts.most_common(3) print(top_three) # Outputs [('eyes', 8), ('the', 5), ('look', 4)]
討論可以給 Counter 對(duì)象提供任何可哈希的對(duì)象序列做為輸入。在底層實(shí)現(xiàn)中,Counter 是一個(gè)字典,在元素和它們出現(xiàn)的次數(shù)間做了映射。例:
word_counter['not'] # 1 word_counter['eyes'] # 8
如果想手動(dòng)增加計(jì)數(shù),只能簡單地自增即可:
morewords = ['why','are','you','not','looking','in','my','eyes'] for word in morewords: word_counts[word] += 1 print(word_counts['eyes']) # 9
另一種方法是使用update()方法:
word_counts.update(morewords)
Counter對(duì)象還可以同各種數(shù)學(xué)運(yùn)算操作結(jié)合起來使用:
>>> a = Counter(words) >>> b = Counter(morewords) >>> a Counter({'eyes': 8, 'the': 5, 'look': 4, 'into': 3, 'my': 3, 'around': 2, "you're": 1, "don't": 1, 'under': 1, 'not': 1}) >>> b Counter({'eyes': 1, 'looking': 1, 'are': 1, 'in': 1, 'not': 1, 'you': 1, 'my': 1, 'why': 1}) >>> # Combine counts >>> c = a + b >>> c Counter({'eyes': 9, 'the': 5, 'look': 4, 'my': 4, 'into': 3, 'not': 2, 'around': 2, "you're": 1, "don't": 1, 'in': 1, 'why': 1, 'looking': 1, 'are': 1, 'under': 1, 'you': 1}) >>> # Subtract counts >>> d = a - b >>> d Counter({'eyes': 7, 'the': 5, 'look': 4, 'into': 3, 'my': 2, 'around': 2, "you're": 1, "don't": 1, 'under': 1})
以上就是Python面試題之統(tǒng)計(jì)哈希列表中最多元素的詳細(xì)內(nèi)容,更多關(guān)于Python哈希列表最多元素統(tǒng)計(jì)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實(shí)現(xiàn)集中式的病毒掃描功能詳解
這篇文章主要介紹了python實(shí)現(xiàn)集中式的病毒掃描功能,結(jié)合實(shí)例形式分析了Python集中式的病毒掃描相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2019-07-07Python實(shí)現(xiàn)線性判別分析(LDA)的MATLAB方式
今天小編大家分享一篇Python實(shí)現(xiàn)線性判別分析(LDA)的MATLAB方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12如何使用 Python 讀取文件和照片的創(chuàng)建日期
這篇文章主要介紹了如何使用 Python 讀取文件和照片的創(chuàng)建日期,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Python中實(shí)現(xiàn)定時(shí)任務(wù)常見的幾種方式
在Python中,實(shí)現(xiàn)定時(shí)任務(wù)是一個(gè)常見的需求,無論是在自動(dòng)化腳本、數(shù)據(jù)處理、系統(tǒng)監(jiān)控還是其他許多應(yīng)用場景中,Python提供了多種方法來實(shí)現(xiàn)定時(shí)任務(wù),包括使用標(biāo)準(zhǔn)庫、第三方庫以及系統(tǒng)級(jí)別的工具,本文將詳細(xì)介紹幾種常見的Python定時(shí)任務(wù)實(shí)現(xiàn)方式2024-08-08Django調(diào)用百度AI接口實(shí)現(xiàn)人臉注冊(cè)登錄代碼實(shí)例
這篇文章主要介紹了Django調(diào)用百度AI接口實(shí)現(xiàn)人臉注冊(cè)登錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Python使用LSTM實(shí)現(xiàn)銷售額預(yù)測詳解
大家經(jīng)常會(huì)遇到一些需要預(yù)測的場景,比如預(yù)測品牌銷售額,預(yù)測產(chǎn)品銷量。本文給大家分享一波使用?LSTM?進(jìn)行端到端時(shí)間序列預(yù)測的完整代碼和詳細(xì)解釋,需要的可以參考一下2022-07-07python實(shí)戰(zhàn)之PyQt5實(shí)現(xiàn)漫畫臉
本文詳細(xì)講解了python實(shí)戰(zhàn)之PyQt5實(shí)現(xiàn)漫畫臉的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12