我觉得这个问题类似于This one
return(lambda x: "Even" if number % 2 == 0 else "Odd")
我可以解决这个问题:
if number % 2 == 0:
return("Even")
else:
return("Odd")
但我想为此准备一个整齐的单线。现在我卡住了,我的代码返回
at 0x7fb0378fb0d0>
我错过了什么?
答案 0 :(得分:2)
Lambda返回一个函数,所以你得到函数的地址。
试试这个:
return ((lambda x: "Even" if x % 2 == 0 else "Odd")(2))
这里执行lambda函数而不是只返回函数本身。
您可以将lambda函数分配给这样的变量:
func = lambda x: "Even" if x % 2 == 0 else "Odd"
然后使用相关参数调用该函数:
func(2)
答案 1 :(得分:2)
你根本不应该使用lambda。只是做
return 'Even' if number % 2 == 0 else 'Odd'
或
return ('Even', 'Odd')[number % 2]
答案 2 :(得分:0)
lambda返回函数
试试这个
f = lambda (x :"Even" if x % 2 == 0 else "Odd")
print f(2)
希望它有所帮助!