如何在python中获取逻辑和布尔函数列表

时间:2019-07-04 18:59:56

标签: python

说我有一个函数li = [fun1, fun2, ..., funk]的列表,这些函数带有一个参数并返回一个布尔值。我想将它们组合成一个函数,该函数在其参数求值时返回每个fun的逻辑和返回值。 (换句话说,我想拥有fun(x) = fun1(x) and fun2(x) and ... and funk(x)。)

是否有一种优雅的方法?

2 个答案:

答案 0 :(得分:2)

使用all创建复合函数

def func(x, lst):

    #lst is the list of functions and x is used as an argument for functions
    return all(fun(x) for fun in lst)

然后将其命名为

func(x,[fun1, fun2, fun3,...., funk])

如果需要lambda函数,则可以执行以下操作,但这违反了PEP-8准则

  

始终使用def语句代替将lambda表达式直接绑定到标识符的赋值语句。

func = lambda x:all(fun(x) for fun in lst)

并命名为

func(x)

答案 1 :(得分:0)

all会做到

all(func(x) for func in li)