#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))
Комментариев нет:
Отправить комментарий