>>> def accept(d1, d2):
if somefunc(d1,d2) > 32:
h = 1
else:
h = 0
return h
Python有三元条件运算符吗?没有为想要返回值的情况提供解决方案。优选基于 lambda 的解决方案。
>>> def accept(d1, d2):
if somefunc(d1,d2) > 32:
h = 1
else:
h = 0
return h
Python有三元条件运算符吗?没有为想要返回值的情况提供解决方案。优选基于 lambda 的解决方案。
“返回值方案”与其他任何情况没有什么不同:
return 1 if somefunc(d1, d2) > 32 else 0
如果由于某种原因你想要一个 lambda:
lambda d1, d2: 1 if somefunc(d1, d2) > 32 else 0
def
请注意,lambda 与用返回相同内容定义的函数没有什么不同。Lambda 只是常规函数。
或者,也许更棘手,
return int(somefunc(d1, d2) > 32)
请注意int(True) == 1
和int(False) == 0
。
变成一个lambda
(不是显式函数):
accept = lambda d1,d2: 1 if somefunc(d1, d2) > 32 else 0