Python3實(shí)現(xiàn)統(tǒng)計(jì)單詞表中每個(gè)字母出現(xiàn)頻率的方法示例
本文實(shí)例講述了Python3實(shí)現(xiàn)統(tǒng)計(jì)單詞表中每個(gè)字母出現(xiàn)頻率的方法。分享給大家供大家參考,具體如下:
作為python字典與數(shù)組概念的運(yùn)用,統(tǒng)計(jì)字母表中每個(gè)字母出現(xiàn)的頻率,作為練習(xí)再合適不過。
解決問題過程中需要用到的知識點(diǎn)包括:字典的創(chuàng)建、增添元素,數(shù)組的創(chuàng)建、增添元素,數(shù)組的遍歷等
這個(gè)問題解決的思路為:首先從文件中按行依次讀入單詞,去除換行符后添加到數(shù)組 new_list 中。依次遍歷數(shù)組 new_list 的每一個(gè)字符串,將每個(gè)字符串連同上一次循環(huán)中的頻率統(tǒng)計(jì)結(jié)果 old_d (old_d在遍歷new_list之前進(jìn)行初始化)一起作為實(shí)參傳遞給頻率統(tǒng)計(jì)函數(shù) histogram()。histogram()函數(shù)在上一輪頻率統(tǒng)計(jì)基礎(chǔ)上得出本輪頻率統(tǒng)計(jì)結(jié)果,結(jié)果通過字典 d 傳回,將值賦給 old_d 。直到遍歷完new_list,再將 old_d 統(tǒng)計(jì)結(jié)果打印。
'''transform string into dictionary s is input string d is dictionary to restore every bit in string ''' def histogram(s, old_d): d = old_d for c in s: d[c] = d.get(c, 0) + 1 return d '''This function can calculate the frequency of every letter in alphabet ''' fin = open("words.txt") new_list = [] for line in fin: rs = line.rstrip('\n') #delete the '\n' after every letter new_list.append(rs) # new_list is used to restore letters old_d = dict() # initialize the dictionary for i in range(len(new_list)): #calculate the letter #frequency of every word old_d = histogram(new_list[i], old_d) #old_d is used to #restore letter frequency before new_list[i] print(old_d)
這里words.txt文檔內(nèi)容如下:
But soft what light through yonder window breaks
It is the east and Juliet is the sun
Arise fair sun and kill the envious moon
Who is already sick and pale with grief
代碼運(yùn)行結(jié)果:
{'B': 1, 'u': 6, 't': 12, ' ': 29, 's': 11, 'o': 8, 'f': 3, 'w': 4, 'h': 9, 'a': 10, 'l': 6, 'i': 13, 'g': 3, 'r': 7, 'y': 2, 'n': 9, 'd': 6, 'e': 12, 'b': 1, 'k': 3, 'I': 1, 'J': 1, 'A': 1, 'v': 1, 'm': 1, 'W': 1, 'c': 1, 'p': 1}
PS:這里再為大家推薦2款相關(guān)統(tǒng)計(jì)工具供大家參考:
在線字?jǐn)?shù)統(tǒng)計(jì)工具:
http://tools.jb51.net/code/zishutongji
在線字符統(tǒng)計(jì)與編輯工具:
http://tools.jb51.net/code/char_tongji
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python實(shí)現(xiàn)一元一次與一元二次方程求解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)一元一次與一元二次方程的求解,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06Python利用pynput實(shí)現(xiàn)劃詞復(fù)制功能
這篇文章主要為大家想詳細(xì)介紹了Python如何利用pynput實(shí)現(xiàn)劃詞復(fù)制功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05Python對list列表結(jié)構(gòu)中的值進(jìn)行去重的方法總結(jié)
這篇文章主要介紹了Python對列表list中的值進(jìn)行去重的方法總結(jié),文中給出的方法都能保持去重后的順序不發(fā)生改變,需要的朋友可以參考下2016-05-05Python3.5模塊的定義、導(dǎo)入、優(yōu)化操作圖文詳解
這篇文章主要介紹了Python3.5模塊的定義、導(dǎo)入、優(yōu)化操作,結(jié)合圖文與實(shí)例形式詳細(xì)分析了Python3.5模塊的定義、導(dǎo)入及優(yōu)化等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-04-04jupyter lab無法導(dǎo)入graphviz模塊方式
今天小編就為大家分享一篇jupyter lab無法導(dǎo)入graphviz模塊方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02python操作csv格式文件之csv.DictReader()方法
這篇文章主要介紹了python操作csv格式文件之csv.DictReader()方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-06-06