作業三 查重 分析效能

2022-07-05 09:24:17 字數 1889 閱讀 1642

**分析:

1.匯入模組

from string import punctuation
2.讀取檔案

def

process_file(dst):

try:

f = open(dst,'r'

)

except

ioerror as s:

print

(s)

return

none

try:

bvffer =f.read()

except

:

print ("

read file error!")

return

none

f.close()

return bvffer

3.處理緩衝區,將字母全部轉換為小寫,以空格分隔單詞,將重複詞彙存入字典

def

process_buffer(bvffer):

ifbvffer:

word_freq ={}

#下面新增處理緩衝區 bvffer**,統計每個單詞的頻率,存放在字典word_freq

bvffer =bvffer.lower()

#將文件中的全部字母改為小寫,防止大小寫混淆

words =bvffer.strip().split()

#以空格分割詞彙

for word in

words:

word_freq[word] = word_freq.get(word,0)+1

#將重複詞彙存到字典裡

return word_freq

4.輸出重複率前十的詞彙

def

output_result(word_freq):

ifword_freq:

sorted_word_freq = sorted(word_freq.items(), key=lambda v: v[1], reverse=true)

for item in sorted_word_freq[:10]: #

輸出 top 10 的單詞

print(item)

5.執行

if

__name__ == "

__main__":

import

argparse

parser =argparse.argumentparser()

parser.add_argument(

'dst')

args =parser.parse_args()

dst =args.dst

bvffer =process_file(dst)

word_freq =process_buffer(bvffer)

output_result(word_freq)

執行結果:大檔案:

小檔案:

效能分析:

共執行3219次,耗時0.004秒

總結:

作業要求 20180925 3 效能分析

本次作業要求參見 由於上次作業沒有實現功能4,具體的 還在做,在接下來的時間如果實現功能4,會補寫功能4的效能分析。在對自己的已實現功能效能分析後,對喬靜玉同學程式的功能4進行了效能分析 以下是我對自己上次實現的功能的進行的效能分析,以此證明我認真學習了使用ptime程式進行效能分析。要求0 用pt...

第三週作業(3) 詞頻統計 效能分析

效能分析作業具體要求如下 一 要求 以 戰爭與和平 作為輸入檔案,重讀向由檔案系統讀入。次數時間 第一次33.972s 第二次35.884s 第三次34.393s 平均時間 通過使用 ptime.exe測試執行時間發現自己的 執行具體有多慢,我猜測程式的瓶頸是單詞從檔案中讀取。file fp fp ...

氣泡排序與查重 案列分析

現有乙個長度為10的陣列,陣列中的每個元素為0 1000的隨機數字,現請將此陣列按公升序排列並列印在頁面上,且不能有重複數字。題目分析 檢視題目,我們發現題目有如下幾個個要求 但是還有乙個隱藏要求。因為進行去重操作後,陣列的長度有可能會減少。由於題目要求輸出長度為10的陣列。所以我們要在最後進行最後...