欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Python3實現(xiàn)統(tǒng)計大量單詞中各字母出現(xiàn)的次數(shù)和頻率的方法

 更新時間:2021年03月08日 09:28:10   作者:firm_mabu  
這篇文章主要介紹了利用Python3實現(xiàn)統(tǒng)計大量單詞中各字母出現(xiàn)的次數(shù)和頻率,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

首先以只讀方式打開單詞文件,利用列表推導式創(chuàng)建兩個列表
列表sta記錄各單詞出現(xiàn)的次數(shù),列表freq記錄各單詞出現(xiàn)的頻率

f = open('5500詞.txt','r',encoding='utf-8')
sta = [0 for i in range(26)]
freq = [0 for i in range(26)]

單詞格式如下所示:
a [ei] art.一(個);每一(個);(同類事物中)任一個
abandon [ə'bændən] vt.離棄,丟棄;遺棄,拋棄;放棄
abdomen [æb'dəumen] n.腹,下腹(胸部到腿部的部分)
abatement [ə'beitmənt] n.減(免)稅,打折扣,沖銷
abide [ə'baid] vi.(abode,abided)(by)遵守;堅持;vt.忍受,容忍

每行一個單詞,所以我們選擇按行讀取文件

for i in range(5500):
  buf = f.readline()

然后依次統(tǒng)計每個字符串中的字母個數(shù),注意大寫字母也要統(tǒng)計(后面的字母省略)

for j in buf:
    if j == 'a' or j == 'A':
      sta[0] = sta[0] + 1
    elif j == 'b' or j == 'B':
      sta[1] = sta[1] + 1

注意到每個單詞后都有音標,所以遇到 中括號" [ "時停止計數(shù)

if j == '[':
      break

然后每五個一行,依次輸出各個單詞出現(xiàn)的次數(shù),將print函數(shù)中的end參數(shù)由默認換行改成幾個空格,使輸出更格式化。字母利用ASCII碼輸出

print('5498個詞匯中,各字母出現(xiàn)的次數(shù)分別為:\n')
asc = 97
for i in range(26):
  if i < 25:
    print("%c" % asc,':',sta[i],end='  ')
    if (i + 1) % 5 == 0:
      print('\n')
  else:
    print("%c" % asc,':',sta[i])
  asc = asc + 1

利用一個for遍歷計算出所有字母數(shù)量的總和

sum = 0
for i in sta:
  sum = sum + i

利用一個for遍歷計算出各字母出現(xiàn)的頻率,注意到Python中計算出的頻率會自動保留17位小數(shù),為了方便查看,使用round()函數(shù)保留四位小數(shù),值得注意的是,使用round()函數(shù)會自動去掉數(shù)字末尾的0

for i in range(26):
  freq[i] = round(sta[i] / sum,4)

再以每五個一行,依次輸出各個單詞出現(xiàn)的頻率,將print函數(shù)中的end參數(shù)由默認換行改成幾個空格,使輸出更格式化。字母利用ASCII碼輸出。

print('各字母出現(xiàn)的頻率分別為:\n')
for i in range(26):
  if i < 25:
    print("%c" % asc,':',freq[i],end='  ')
    if (i + 1) % 5 == 0:
      print('\n')
  else:
    print("%c" % asc,':',freq[i])
  asc = asc + 1

最后輸出的結果如下圖所示:

輸出結果

上概率論的課時,偶然看見居然有人拿著詞典去數(shù)字母的數(shù)量,就想能不能寫一個自動統(tǒng)計的程序,于是就隨便寫著玩。代碼功底很差,所以寫得很丑(居然有25個elif),所以看個樂呵就好了。

總的來說,我覺得有這些可以改進的地方:
①讀取單詞的方法可以改進,這種一行一行讀取的方式,對格式要求很高,很難找到
②用字典來存儲頻數(shù)和頻率是否會更好?后面輸出的時候可以避免使用ASCII碼,但是字典推導式我屬實記不清了
③判斷計數(shù)的這些if和elif能否抽象出一個方法?增加代碼復用
④round()函數(shù)會自動去掉小數(shù)后面的0,有沒有什么方法使0被保留下來?這樣輸出的格式會更好看

我的代碼的優(yōu)點估計只有一點了:
①Python初學者就能看懂

到此這篇關于利用Python3實現(xiàn)統(tǒng)計大量單詞中各字母出現(xiàn)的次數(shù)和頻率的方法的文章就介紹到這了,更多相關Python3字母出現(xiàn)次數(shù)和頻率內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python添加菜單圖文講解

    python添加菜單圖文講解

    在本篇文章中小編給大家整理的是關于python添加菜單圖文講解以及步驟分析,需要的朋友們學習下吧。
    2019-06-06
  • Python斷言assert的用法代碼解析

    Python斷言assert的用法代碼解析

    這篇文章主要介紹了Python斷言assert的用法代碼解析,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • python hmac模塊驗證客戶端的合法性

    python hmac模塊驗證客戶端的合法性

    這篇文章主要介紹了python hmac模塊驗證客戶端的合法性,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • python利用cv2庫讀取和保存視頻的操作步驟

    python利用cv2庫讀取和保存視頻的操作步驟

    這篇文章主要介紹了python利用cv2庫讀取和保存視頻的操作步驟,文中通過代碼示例給大家講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • 徹底解決pip下載pytorch慢的問題方法

    徹底解決pip下載pytorch慢的問題方法

    這篇文章主要介紹了徹底解決pip下載pytorch慢的問題方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Python接口自動化淺析pymysql數(shù)據(jù)庫操作流程

    Python接口自動化淺析pymysql數(shù)據(jù)庫操作流程

    本文主要介紹pymysql安裝、操作流程、語法基礎及封裝操作數(shù)據(jù)庫類,需要的朋友可以參考下,希望能對大家有所幫助,每日提升一點點,歡迎大家多多交流討論
    2021-08-08
  • tensorflow使用CNN分析mnist手寫體數(shù)字數(shù)據(jù)集

    tensorflow使用CNN分析mnist手寫體數(shù)字數(shù)據(jù)集

    這篇文章主要介紹了tensorflow使用CNN分析mnist手寫體數(shù)字數(shù)據(jù)集,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Python機器學習之KNN近鄰算法

    Python機器學習之KNN近鄰算法

    KNN可以說是最簡單的分類算法之一,同時,它也是最常用的分類算法,文中非常詳細的介紹了該算法,對正在學習python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • pytorch之添加BN的實現(xiàn)

    pytorch之添加BN的實現(xiàn)

    今天小編就為大家分享一篇pytorch之添加BN的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python3接口性能測試實例代碼

    Python3接口性能測試實例代碼

    在本篇文章里小編給大家整理的是一篇關于Python3實現(xiàn)簡單的接口性能測試的相關實例內(nèi)容,有興趣的朋友們可以跟著學習下。
    2021-06-06

最新評論