Вот примерное решение.
def search(sentences, keyword1, keyword2, window=3):
res = []
for sentence in sentences:
words = sentence.lower().split(" ")
if keyword1 in words and keyword2 in words:
keyword1_idx = words.index(keyword1)
keyword2_idx = words.index(keyword2)
if keyword2_idx - keyword1_idx <= window:
res.append(sentence)
return res
Учитывая список sentences
и два ключевых слова, keyword1
и keyword2
, мы перебираем список sentences
один за другим. Мы разбиваем предложение на слова, предполагая, что слова разделены одним пробелом. Затем, после беглой проверки того, присутствуют ли оба ключевых слова в списке words
, мы находим индекс каждого ключевого слова в words
, чтобы убедиться, что индексы разнесены не более чем на window
, т.е. слова расположены близко друг к другу в пределах window
слов. Мы добавляем только те предложения, которые удовлетворяют этому условию, в список res
и возвращаем этот результат.