只是为了自己的娱乐工具,我想使用lambda,因为我觉得它.我可以用lambda替换这个函数吗?
def isodd(number):
if (number%2 == 0):
return False
else:
return True
Run Code Online (Sandbox Code Playgroud)
小学,是的.但我很想知道......
Ale*_*erg 14
如果你真的不需要一个功能,即使没有lambda也可以替换它.:)
(number % 2 != 0)
Run Code Online (Sandbox Code Playgroud)
本身是一个计算结果为True或False的表达式.甚至更平坦,
bool(number % 2)
Run Code Online (Sandbox Code Playgroud)
你可以这样简化:
if number % 2:
print "Odd!"
else:
print "Even!"
Run Code Online (Sandbox Code Playgroud)
但是,如果那可读或不可能是旁观者的眼睛.
并且不要忘记您可以使用简单的短路逻辑模拟复杂的条件句,利用“and”和“or”返回它们的一些元素(最后一个评估的元素)......例如,在这种情况下,假设您想返回与 True 或 False 不同的内容
lambda x: x%2 and "Odd" or "Even"
Run Code Online (Sandbox Code Playgroud)
其他人已经给你回复了你的具体案例.但一般情况下,当你真正需要的if语句来,你可以使用条件表达式.例如,如果你不得不返回字符串"False"和"True",而不是布尔值,你可以这样做:
lambda num: "False" if num%2==0 else "True"
Run Code Online (Sandbox Code Playgroud)
Python语言参考中此表达式的定义如下:
表达式
x if C else y首先评估C(不x); ifC为true,x进行求值并返回其值; 否则,y将评估其值并返回其值.