Задать вопрос
@YonChyDa0831

Как заменить данный кусок кода на более универсальный?

Есть две повторяющие функции проверки наличия слова в списке с ключевыми словами. В конечном счёте их должно быть свыше 10. Можно ли как-то изменить конструкцию так, чтобы не нарушать DRY?

def check_messagei(message):
    for word in wordse:
        if word in message.text.lower():
            return True
    return False


def check_messageg(message):
    for word in wordsg:
        if word in message.text.lower():
            return True
    return False
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Если я правильно понял, то:
def check_message(message, keywords):
    for word in keywords:
        if word in message.text.lower():
            return True
    return False

a = check_message(message, wordse)
b = check_message(message, wordsg)
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Определить одну функцию
def is_message_contains_any_word(message, words):
    lowerMessage = message.text.lower()
    for word in words
        if word in lowerMessage:
            return True
    return False
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
aRegius
@aRegius
Python Enthusiast
def is_word_in_text(text, words):
    return any(word in text for word in words)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы