
Регулярное выражение можно использовать для поиска ключевых слов, игнорируя лишние символы, такие как пробелы и знаки пунктуации. Например:
import re
продукты = ["морковь", "салат"]
рецепты = ["салат с морковью", "морковный суп"]
ввод = "морковь И салат"
# Удалить лишние символы из ввода
ввод_без_символов = re.sub(r"[^\w\s]", "", ввод)
# Преобразовать ввод в список ключевых слов
ключевые_слова = ввод_без_символов.split()
# Найти рецепты, содержащие ключевые слова
совпадающие_рецепты = [рецепт for рецепт in рецепты if all(слово in рецепт for слово in ключевые_слова)]
print(совпадающие_рецепты)
str.find()Другой подход заключается в использовании функции str.find() для поиска ключевых слов в рецепте. Конструкция if может использоваться для проверки наличия всех ключевых слов, игнорируя лишние символы. Например:
продукты = ["морковь", "салат"]
рецепты = ["салат с морковью", "морковный суп"]
ввод = "морковь И салат"
# Удалить лишние символы из ввода
ввод_без_символов = ввод.replace(" ", "").replace(",", "")
# Преобразовать ввод в список ключевых слов
ключевые_слова = ввод_без_символов.split()
# Найти рецепты, содержащие ключевые слова
совпадающие_рецепты = []
for рецепт in рецепты:
for слово in ключевые_слова:
if рецепт.find(слово) == -1:
break
else:
совпадающие_рецепты.append(рецепт)
print(совпадающие_рецепты)