最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

首先以只讀方式打開(kāi)單詞文件,利用列表推導(dǎo)式創(chuàng)建兩個(gè)列表
列表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.一(個(gè));每一(個(gè));(同類(lèi)事物中)任一個(gè)
abandon [ə'bændən] vt.離棄,丟棄;遺棄,拋棄;放棄
abdomen [æb'dəumen] n.腹,下腹(胸部到腿部的部分)
abatement [ə'beitmənt] n.減(免)稅,打折扣,沖銷(xiāo)
abide [ə'baid] vi.(abode,abided)(by)遵守;堅(jiān)持;vt.忍受,容忍

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

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

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

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

注意到每個(gè)單詞后都有音標(biāo),所以遇到 中括號(hào)" [ "時(shí)停止計(jì)數(shù)

if j == '[':
      break

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

print('5498個(gè)詞匯中,各字母出現(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

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

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

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

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

再以每五個(gè)一行,依次輸出各個(gè)單詞出現(xiàn)的頻率,將print函數(shù)中的end參數(shù)由默認(rèn)換行改成幾個(gè)空格,使輸出更格式化。字母利用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

最后輸出的結(jié)果如下圖所示:

輸出結(jié)果

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

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

我的代碼的優(yōu)點(diǎn)估計(jì)只有一點(diǎn)了:
①Python初學(xué)者就能看懂

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

相關(guān)文章

  • tensorflow 自定義損失函數(shù)示例代碼

    tensorflow 自定義損失函數(shù)示例代碼

    這篇文章主要介紹了tensorflow 自定義損失函數(shù)示例,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python中addict庫(kù)使用Dict的類(lèi)

    Python中addict庫(kù)使用Dict的類(lèi)

    本文主要介紹了Python中addict庫(kù)的Dict類(lèi),它允許通過(guò)屬性訪問(wèn)字典的鍵值對(duì),使得訪問(wèn)深層嵌套的字典更加方便,下面就來(lái)具體介紹一下,感興趣的可以了解一下
    2024-12-12
  • python實(shí)現(xiàn)超市管理系統(tǒng)(后臺(tái)管理)

    python實(shí)現(xiàn)超市管理系統(tǒng)(后臺(tái)管理)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)超市管理系統(tǒng),增加后臺(tái)管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • tensorflow2.0實(shí)現(xiàn)復(fù)雜神經(jīng)網(wǎng)絡(luò)(多輸入多輸出nn,Resnet)

    tensorflow2.0實(shí)現(xiàn)復(fù)雜神經(jīng)網(wǎng)絡(luò)(多輸入多輸出nn,Resnet)

    這篇文章主要介紹了tensorflow2.0實(shí)現(xiàn)復(fù)雜神經(jīng)網(wǎng)絡(luò)(多輸入多輸出nn,Resnet),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 如何利用python進(jìn)行時(shí)間序列分析

    如何利用python進(jìn)行時(shí)間序列分析

    這篇文章主要介紹了如何利用python進(jìn)行時(shí)間序列分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 利用Python編寫(xiě)簡(jiǎn)易版德州撲克小游戲

    利用Python編寫(xiě)簡(jiǎn)易版德州撲克小游戲

    德州撲克不知道大家是否玩過(guò),它是起源于美國(guó)的得克薩斯州的一種博弈類(lèi)卡牌游戲,英文名叫做Texas?Hold’em?Poker。本文將用Python實(shí)現(xiàn)這一游戲,需要的可以參考一下
    2022-03-03
  • python?歸并排序的實(shí)現(xiàn)

    python?歸并排序的實(shí)現(xiàn)

    歸并排序是一種分治算法,它將數(shù)組分成兩半,分別對(duì)這兩半進(jìn)行排序,然后將排序后的兩半合并在一起,本文就來(lái)介紹一下python?歸并排序的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • 詳解Python遍歷字典的鍵和值

    詳解Python遍歷字典的鍵和值

    這篇文章主要通過(guò)一些簡(jiǎn)單的示例為大家介紹一下Python中遍歷字典的鍵和值的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • Python3.7中安裝openCV庫(kù)的方法

    Python3.7中安裝openCV庫(kù)的方法

    這篇文章主要介紹了Python3.7中安裝openCV庫(kù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Python中函數(shù)的創(chuàng)建及調(diào)用

    Python中函數(shù)的創(chuàng)建及調(diào)用

    這篇文章主要介紹了Python中函數(shù)的創(chuàng)建及調(diào)用,創(chuàng)建函數(shù)也稱(chēng)為定義一個(gè)函數(shù),可以理解為創(chuàng)建一個(gè)具有某種用途的工具。調(diào)用函數(shù)也就是執(zhí)行函數(shù)。如果把創(chuàng)建的函數(shù)理解為創(chuàng)建一個(gè)具體有某種用途的工具,那么調(diào)用函數(shù)就相當(dāng)于使用該工具
    2022-06-06

最新評(píng)論

彭泽县| 建水县| 内乡县| 邵武市| 肃北| 论坛| 邓州市| 康定县| 夹江县| 石楼县| 固镇县| 井冈山市| 噶尔县| 绵阳市| 嵩明县| 改则县| 威远县| 洛阳市| 平度市| 遂昌县| 兴安盟| 正蓝旗| 四会市| 鄱阳县| 扎兰屯市| 和田县| 阳西县| 仪征市| 沈阳市| 金平| 尖扎县| 疏勒县| 资溪县| 泾阳县| 武山县| 泸溪县| 广安市| 紫云| 克拉玛依市| 漯河市| 遂昌县|