Возвращает элементы из длинного списка, которые присутствуют в строке длины

#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))