列表理解和条件?

Ube*_*per 7 python list-comprehension list

我试图看看是否可以使用列表推导更好地使这些代码.
可以说我有以下列表:

a_list = [
        'HELLO',
        'FOO',
        'FO1BAR',
        'ROOBAR',
        'SHOEBAR'
        ]

regex_list =   [lambda x: re.search(r'FOO', x, re.IGNORECASE),
                lambda x: re.search(r'RO', x, re.IGNORECASE)]
Run Code Online (Sandbox Code Playgroud)

我基本上想要将所有没有任何匹配的元素添加regex_list到另一个列表中.

例如==>

newlist = []
for each in a_list:
    for regex in regex_list:
        if(regex(each) == None):
            newlist.append(each)
Run Code Online (Sandbox Code Playgroud)

如何使用列表推导来完成此操作?它甚至可能吗?

Dav*_*d Z 18

当然,我认为应该这样做

newlist = [s for s in a_list if not any(r(s) for r in regex_list)]
Run Code Online (Sandbox Code Playgroud)

编辑:仔细观察,我注意到你的示例代码实际上添加到新列表中的每个字符串a_list所有正则表达式都不匹配- 而且,它为每个不匹配的正则表达式添加每个字符串一次.我的列表理解符合我的意思,即每个字符串只添加一个与任何正则表达式不匹配的副本.