Lisp在Python中的"一些"?

Mar*_*bst 13 lisp python

我有一个字符串列表和一个过滤器列表(也是字符串,被解释为正则表达式).我想要一个列表,列出我的字符串列表中至少有一个过滤器接受的所有元素.理想情况下,我会写

[s for s in strings if some (lambda f: re.match (f, s), filters)]
Run Code Online (Sandbox Code Playgroud)

其中一些被定义为

def some (pred, list):
    for x in list:
        res = pred (x)
        if res:
            return res
    return False
Run Code Online (Sandbox Code Playgroud)

有类似的东西已经在Python中可用,还是有更惯用的方法来做到这一点?

Mar*_*ers 19

有一个叫做any大概想要的功能.我想你正在寻找这个:

[s for s in strings if any(re.match(f, s) for f in filters)]
Run Code Online (Sandbox Code Playgroud)


Ofr*_*viv 7

[s for s in strings if any(re.match (f, s) for f in filters)]
Run Code Online (Sandbox Code Playgroud)