#python #search
#python #Поиск
Вопрос:
Я пытаюсь получить подмножество списка, содержащего элемент, присутствующий в строке. Я использую следующий код, который работает очень медленно, когда у нас есть большой список элементов и большой список строк.
for s in string:
cc=[]
for e in lst:
if re.search(r"b" re.escape(e) r"b", s):
cc.append(e)
Кто-нибудь может помочь мне оптимизировать его, пожалуйста? Спасибо
Комментарии:
1. Можете ли вы поделиться некоторыми примерами данных и результатом, который вы пытаетесь получить для этого?
Ответ №1:
Преобразуйте список строк поиска в одно регулярное выражение с альтернативами для каждого элемента.
regex = re.compile('b(?:' '|'.join(re.escape(e) for e in lst) r')b')
for s in string:
cc = set(regex.findall(s))