Python 3.x Python:重复函数,直到其返回值与某个函数匹配

Python 3.x Python:重复函数,直到其返回值与某个函数匹配,python-3.x,Python 3.x,我有几个函数,比如RandomNumber(n),它们返回一个数字x

我有几个函数,比如
RandomNumber(n)
,它们返回一个数字x 现在我希望能够编写函数,比如
exclude
,它允许我添加过滤表达式来排除一些数字

例如:

exclude(RandomNumber(100), lambda x: x == 0)  

应调用
随机数(100)
,直到返回值为
!=0
。这在python中可能吗?

有一个标准的
filter
函数,它可能已经完成了您想要的功能。将其用作
过滤器(谓词,序列)
,其中
谓词=lambda x:x!=0
和序列将是使用
RandomNumber
创建的数字列表

您还可以执行以下操作:

def get_nonzero():
    while True:
        result = RandomNumber(100)
        if result != 0:
            return result

这将只调用函数,直到函数为非零。

不是这样,因为函数是在调用
exclude()
之前调用的。您是否尝试过将其包装在lambda中<代码>排除(λ:随机数(100),λx…。