Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

Как проверить содержится ли в строке какое-то слово из списка?

#python #строки #list #список


Например есть список 

words = ["Авто", "Велосипед", "Самолет"]


И например строка

str = "Быстрый автомобиль"


Нужно вернуть True, т.к. в строке есть "авто"
    


Ответы

Ответ 1



используя регулярные выражения, можно сделать такую проверку без цикла: In [12]: import re In [13]: chk_pat = '(?:{})'.format('|'.join(words)) In [14]: chk_pat Out[14]: '(?:Авто|Велосипед|Самолет)' In [15]: s = "Быстрый автомобиль" In [16]: bool(re.search(chk_pat, s, flags=re.I)) Out[16]: True In [17]: bool(re.search(chk_pat, 'строка', flags=re.I)) Out[17]: False PS если список слов проверки слишком большой 10+K bytes, то лучше, наверное, такие длинные регулярные выражения не использовать

Ответ 2



def is_part_in_list(str_, words): for word in words: if word.lower() in str_.lower(): return True return False Тест: words = ["Авто", "Велосипед", "Самолет"] str_ = "Быстрый автомобиль" print(is_part_in_list(str_, words)) Вывод: True

Ответ 3



words = ["Авто", "Велосипед", "Самолет"] str = "Быстрый автомобиль" for s in words: if str.lower().find(s.lower()) != -1: print("True") break

Ответ 4



print(any(word.lower() in str.lower() for word in words))

Комментариев нет:

Отправить комментарий