Я использую списочное понимание для фильтрации строк в list_a
(большой список), которые содержат любую из строк в list_b
(другой большой список).Я смог успешно использовать приведенный ниже код для генерации списка элементов в list_a, которые имеют такие совпадения:
list_a_results = [s for s in list_a if any(xs in s for xs in list_b)]
Теперь я пытаюсь сделать то, о чем я думаю, как об обратномобрабатывать, т. е. идентифицировать каждый элемент из list_b
, который отображается в каждой строке, указанной в list_a_results
.Есть ли отличный способ использовать списочное понимание для достижения этой цели?
Пример того, что я пытаюсь достичь: когда мне дано:
list_a_results = ['abc def ghi jkl', 'mno pqr', 'stu', 'vwx yz']
list_b = ['abc', 'ghi', 'pqr', 'stu', 'vwx', 'yz']
Я хочу иметь возможность генерироватьследующее:
matches_in_list_a = [['abc', 'ghi'], 'pqr', 'stu', ['vwx','yz']]