@AlmazKayum

Как сделать поиск в Python быстрее?

Есть кортеж кортежей из id строки и предложений, получаемый в postgresql селектом.

Пример,
data = ((1, 'Здравствуйте, я ваша тетя'),  (2, 'Алял ля ля, оле леле'), (3, 'Для этой ситуации необходим VPN'))


Задача,
необходимо найти определенные слова в предложении и выдать их id.

Единственный способ, который я знаю это перебор каждого слова в предложениях циклом for
searching_word = 'необходим'
searched_ids = []
for id, sentence in data:
    if word in sentence:
        searched_ids.append(id)
        continue


Когда строк в базе данных будет много, я предполагаю, что поиск будет очень долгим.
Есть ли какие способы, чтобы сделать поиск быстрым?
Может через SQL, или надо какой то пайтон библиотекой воспользоваться?
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 1
@denislysenko
data engineer
Можно воспользоваться генератором списков, это работает быстрее чем обычный цикл

def func(data, searching_word):
    return [id for id, sentence in data if searching_word in sentence ]

result = func(((1, 'Здравствуйте, я ваша тетя'),  (2, 'Алял ля ля, оле леле'), (3, 'Для этой ситуации необходим VPN')), 'необходим')

print(result) # --> [3]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы