Какой простой способ поиска слова в Python в очень длинном текстовом файле? - PullRequest
1 голос
/ 03 мая 2011

Я хочу создать очень простую проверку орфографии, используя текстовый файл с алфавитным списком из примерно 80000 общих слов.

Какой простой, но эффективный способ поиска файла и определения, содержит ли он слово, используя python?

Должен ли я разобрать файл списка слов в набор, список, словарь, кортеж?

Есть ли простой способ воспользоваться тем, что мой список слов уже в алфавитном порядке?

Я бы предпочел, чтобы это было относительно просто. Я не хочу исправленных орфографических рекомендаций или других необычных функций. Я просто хочу знать, написано ли слово неправильно.

Ответы [ 2 ]

5 голосов
/ 03 мая 2011

Поскольку 80000 слов легко помещаются в памяти, лучше всего использовать set:

words = set(line.strip() for line in open("words"))

Это не будет использовать тот факт, что ваш файл уже отсортирован, но в любом случае это самый эффективный способ. Чтобы найти слово w, вы можете использовать

w in words

, которая амортизируется O (1).

1 голос
/ 03 мая 2011

Поместите свои слова в набор, который имеет постоянное время поиска.

myDict = set([<actual list of words here>])
for word in file:
    if word not in myDict:
        handleBadWord(word)
...