Самый эффективный способ определить, содержит ли большой список определенную строкуPython

Программы на Python
Ответить
Гость
 Самый эффективный способ определить, содержит ли большой список определенную строку

Сообщение Гость »


У меня есть файл, содержащий примерно все слова на английском языке (~60 тысяч слов, ~500 тысяч символов). Я хочу проверить, является ли определенное слово, которое я получаю в качестве входных данных, «на английском языке» (т. е. есть ли именно это слово в списке).

Какой самый эффективный способ сделать это в Python?

Тривиальное решение — загрузить файл в список и проверить, есть ли слово в этом списке. Список можно отсортировать, что, я считаю, уменьшит сложность до O(logn). Однако я не уверен, как Python реализует поиск по спискам и будет ли снижаться производительность, если такой большой список находится в памяти. Могу ли я «злоупотреблять» тем, что могу ограничить длину слов? (например, скажем, самый длинный из них имеет длину 15 символов).

Обратите внимание, что я запускаю приложение на компьютере с большим объемом памяти, поэтому меня волнует не столько потребление памяти, сколько скорость и загрузка ЦП.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»