Как я могу заставить эту программу python быстрее читать большой текстовый файл? Мой код занимает почти пять минут, чтобы прочитать текстовый файл, но мне нужно, чтобы он делал это намного быстрее. Я думаю, что мой алгоритм не в O (n).Чтение текстового файла python происходит медленно
Некоторые примеры данных (установлено actual data является 470k + строк):
Aarika
Aaron
aaron
Aaronic
aaronic
Aaronical
Aaronite
Aaronitic
Aaron's-beard
Aaronsburg
Aaronson
Мой код:
import string
import re
WORDLIST_FILENAME = "words.txt"
def load_words():
wordlist = []
print("Loading word list from file...")
with open(WORDLIST_FILENAME, 'r') as f:
for line in f:
wordlist = wordlist + str.split(line)
print(" ", len(wordlist), "words loaded.")
return wordlist
def find_words(uletters):
wordlist = load_words()
foundList = []
for word in wordlist:
wordl = list(word)
letters = list(uletters)
count = 0
if len(word)==7:
for letter in wordl[:]:
if letter in letters:
wordl.remove(letter)
# print("word left" + str(wordl))
letters.remove(letter)
# print(letters)
count = count + 1
#print(count)
if count == 7:
print("Matched:" + word)
foundList = foundList + str.split(word)
foundList.sort()
result = ''
for items in foundList:
result = result + items + ','
print(result[:-1])
#Test cases
find_words("eabauea" "iveabdi")
#pattern = "asa" " qlocved"
#print("letters to look for: "+ pattern)
#find_words(pattern)
Похоже, лучше подходят для http://codereview.stackexchange.com/. – alecxe
Если вы также можете объяснить, что ваша программа должна делать, это поможет. – MYGz
Одна вещь ... 'wordlist = wordlist + str.split (строка)' копирует список слов в строке. Сделайте 'wordlist.extend (line.strip(). Split())'. Или, если вы хотите избавиться от дубликатов и быстрее выполнить поиск слов, сделайте 'wordlist'' 'set' и сделайте' .update'. – tdelaney