逻辑和两个功能

时间:2014-05-05 03:59:36

标签: python

这可能是一个愚蠢的问题,但我在谷歌上没有任何运气。我有两个函数与输出布尔值相同的输入。我想将它们组合起来形成一个新功能。例如,如果我的函数是xy

def x(input): return input%3==0 
def y(input): return input%5==0 
answer = lambda z: x(z) and y(z)

我可以这样做,但有内置的方法吗?我试过了answer = x and z,但那不起作用。

1 个答案:

答案 0 :(得分:3)

两件事。

  1. 除非您明确从函数返回值,否则默认情况下它将返回None。因此,您的xy应该是这样的

    def x(data):
        return True if data%3==0 else False
    def y(data):
        return True if data%5==0 else False
    

    更简单,

    def x(data):
        return data % 3 == 0
    def y(data):
        return data % 5 == 0
    
  2. 然后您可以使用all这样的功能

    print all(function(data) for function in (x, y))
    

    现在,只有当所有函数都返回Truthy值时,all才会返回Truthy。