Как использовать повторяющиеся объекты в понимании списка

У меня есть функция, чтобы выбрать комки из списка строк и вернуть их в виде другого списка:

def filterPick(lines,regex):
    result = []
    for l in lines:
        match = re.search(regex,l)
        if match:
            result += [match.group(1)]
    return result

Есть ли способ переформулировать это как понимание списка? Очевидно, это довольно ясно, как есть; просто любопытно.

Спасибо тем, кто внес свой вклад. Вот сжатая версия того, чем я закончил; метод сопоставления с регулярным выражением передается в filterPick в качестве параметра «pre-hoisted»:

import re

def filterPick(list,filter):
    return [ ( l, m.group(1) ) for l in list for m in (filter(l),) if m]

theList = ["foo", "bar", "baz", "qurx", "bother"]
searchRegex = re.compile('(a|r$)').search
x = filterPick(theList,searchRegex)

>> [('bar', 'a'), ('baz', 'a'), ('bother', 'r')]

Ответы на вопрос(4)

Ваш ответ на вопрос