该程序运行时间过长

时间:2017-05-31 04:14:42

标签: python python-3.x

此代码需要很长时间才能运行。

它旨在找到文本文件中最常用的单词。

在Python 3.5.1中。

守则:

cTR = []
cTRC = []


file = open("fileToCompress3.txt","r")
analysis = file.read().split(' ')
file.close()


##### Most Common Word #####
print(1)

for i in range(len(analysis)):

    if analysis[i] not in cTR:
        cTR.extend([analysis[i]])
        cTRC.extend([1])

    elif analysis[i] in cTR:

        for j in range(len(cTR)):

            if cTR[j] == analysis[i]:

                use = j
                break

        cTRC[use] = cTRC[use] + 1

谢谢,我真的很感激任何帮助!

1 个答案:

答案 0 :(得分:2)

是的,这是一种非常低效的方式 - Θ(n²)时间。 Python有a built-in counter type进行Θ(n)比较:

from collections import Counter

with open("fileToCompress3.txt", "r", encoding="utf-8") as f:
    words = f.read().split()

word_counts = Counter(words)

print(word_counts.most_common(1))