1
>>> def accept(d1, d2):
    if somefunc(d1,d2) > 32:
        h = 1
    else:
        h = 0
    return h

Python有三元条件运算符吗?没有为想要返回值的情况提供解决方案。优选基于 lambda 的解决方案。

4

3 回答 3

5

“返回值方案”与其他任何情况没有什么不同:

return 1 if somefunc(d1, d2) > 32 else 0

如果由于某种原因你想要一个 lambda:

lambda d1, d2: 1 if somefunc(d1, d2) > 32 else 0

def请注意,lambda 与用返回相同内容定义的函数没有什么不同。Lambda 只是常规函数。

于 2013-10-06T21:03:13.573 回答
3

或者,也许更棘手,

return int(somefunc(d1, d2) > 32)

请注意int(True) == 1int(False) == 0

于 2013-10-06T21:06:50.833 回答
-1

变成一个lambda(不是显式函数):

accept = lambda d1,d2: 1 if somefunc(d1, d2) > 32 else 0
于 2013-10-06T21:05:27.497 回答