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í)再合適不過(guò)。
解決問(wèn)題過(guò)程中需要用到的知識(shí)點(diǎn)包括:字典的創(chuàng)建、增添元素,數(shù)組的創(chuàng)建、增添元素,數(shù)組的遍歷等
這個(gè)問(wèn)題解決的思路為:首先從文件中按行依次讀入單詞,去除換行符后添加到數(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é)果通過(guò)字典 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入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
tensorflow獲取預(yù)訓(xùn)練模型某層參數(shù)并賦值到當(dāng)前網(wǎng)絡(luò)指定層方式
今天小編就為大家分享一篇tensorflow獲取預(yù)訓(xùn)練模型某層參數(shù)并賦值到當(dāng)前網(wǎng)絡(luò)指定層方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Django配置Mysql數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)
本文主要介紹了Django配置Mysql數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5輸入對(duì)話框QInputDialog詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5輸入對(duì)話框QInputDialog詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-02-02
基于Python 的進(jìn)程管理工具supervisor使用指南
Supervisor 是基于 Python 的進(jìn)程管理工具,可以輕松管理一些需要以守護(hù)進(jìn)程方式執(zhí)行的程序,也就是后臺(tái)任務(wù),例如用來(lái)啟動(dòng)和管理基于 Tornado 寫(xiě)的 Web 程序。2016-09-09
Python中NumPy的線性代數(shù)子模塊linalg詳解
這篇文章主要介紹了Python中NumPy的線性代數(shù)子模塊linalg詳解,NumPy 的線性代數(shù)子模塊linalg提供了 20 余個(gè)函數(shù),用于求解行列式、逆矩陣、特征值、特征向量,以及矩陣分解等,需要的朋友可以參考下2023-08-08
Python實(shí)現(xiàn)LSTM學(xué)習(xí)的三維軌跡
這篇文章主要為大家詳細(xì)介紹了如何使用LSTM來(lái)學(xué)習(xí)和預(yù)測(cè)三維軌跡,并提供詳細(xì)的Python實(shí)現(xiàn)示例,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12

