您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python3怎么實現統計單詞表中每個字母出現頻率的方法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1、簡單易用,與C/C++、Java、C# 等傳統語言相比,Python對代碼格式的要求沒有那么嚴格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺上使用;3、Python面向對象,能夠支持面向過程編程,也支持面向對象編程;4、Python是一種解釋性語言,Python寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序;5、Python功能強大,擁有的模塊眾多,基本能夠實現所有的常見功能。
具體如下:
作為python字典與數組概念的運用,統計字母表中每個字母出現的頻率,作為練習再合適不過。
解決問題過程中需要用到的知識點包括:字典的創建、增添元素,數組的創建、增添元素,數組的遍歷等
這個問題解決的思路為:首先從文件中按行依次讀入單詞,去除換行符后添加到數組 new_list 中。依次遍歷數組 new_list 的每一個字符串,將每個字符串連同上一次循環中的頻率統計結果 old_d (old_d在遍歷new_list之前進行初始化)一起作為實參傳遞給頻率統計函數 histogram()。histogram()函數在上一輪頻率統計基礎上得出本輪頻率統計結果,結果通過字典 d 傳回,將值賦給 old_d 。直到遍歷完new_list,再將 old_d 統計結果打印。
'''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文檔內容如下:
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
代碼運行結果:
{'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}
感謝各位的閱讀!關于“Python3怎么實現統計單詞表中每個字母出現頻率的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。