Самый эффективный способ определить, содержит ли большой список определенную строку ⇐ Python
-
Гость
Самый эффективный способ определить, содержит ли большой список определенную строку
У меня есть файл, содержащий примерно все слова на английском языке (~60 тысяч слов, ~500 тысяч символов). Я хочу проверить, является ли определенное слово, которое я получаю в качестве входных данных, «на английском языке» (т. е. есть ли именно это слово в списке).
Какой самый эффективный способ сделать это в Python?
Тривиальное решение — загрузить файл в список и проверить, есть ли слово в этом списке. Список можно отсортировать, что, я считаю, уменьшит сложность до O(logn). Однако я не уверен, как Python реализует поиск по спискам и будет ли снижаться производительность, если такой большой список находится в памяти. Могу ли я «злоупотреблять» тем, что могу ограничить длину слов? (например, скажем, самый длинный из них имеет длину 15 символов).
Обратите внимание, что я запускаю приложение на компьютере с большим объемом памяти, поэтому меня волнует не столько потребление памяти, сколько скорость и загрузка ЦП.
У меня есть файл, содержащий примерно все слова на английском языке (~60 тысяч слов, ~500 тысяч символов). Я хочу проверить, является ли определенное слово, которое я получаю в качестве входных данных, «на английском языке» (т. е. есть ли именно это слово в списке).
Какой самый эффективный способ сделать это в Python?
Тривиальное решение — загрузить файл в список и проверить, есть ли слово в этом списке. Список можно отсортировать, что, я считаю, уменьшит сложность до O(logn). Однако я не уверен, как Python реализует поиск по спискам и будет ли снижаться производительность, если такой большой список находится в памяти. Могу ли я «злоупотреблять» тем, что могу ограничить длину слов? (например, скажем, самый длинный из них имеет длину 15 символов).
Обратите внимание, что я запускаю приложение на компьютере с большим объемом памяти, поэтому меня волнует не столько потребление памяти, сколько скорость и загрузка ЦП.
Мобильная версия