Вам нужно будет проверить каждую строку по списку ключевых слов. Используйте понимание списка, предполагая, что достаточно простого сопоставления строк (без необходимости регулярного выражения).
matched_list = [
string for string in lst if any(
keyword in string for keyword in keywords)]
Что на самом деле просто лаконичный способ сказать:
matched_list = []
for string in lst:
if any(keyword in string for keyword in keywords):
matched_list.append(string)
any
произойдет короткое замыкание, возвращая True
для первого подходящего ключевого слова (или возвращает False
, если совпадение не найдено).
Если вы хотите использовать регулярные выражения, вы можете предварительно скомпилировать шаблон и затем вызвать pattern.search
внутри цикла, как обычно:
import re
p = re.compile('|'.join(map(re.escape, keywords)))
matched_list = [string for string in lst if p.search(string)]