lambda函数中的多个if语句

Rat*_*ion 12 python lambda

我试图在python lambda函数中使用3 if语句.这是我的代码:

y=lambda symbol: 'X' if symbol==True 'O' if symbol==False else ' '
Run Code Online (Sandbox Code Playgroud)

我已经能够得到两个if语句工作得很好,例如

x=lambda cake: "Yum" if cake=="chocolate" else "Yuck"
Run Code Online (Sandbox Code Playgroud)

本质上,我想要一个lambda函数使用if语句如果符号为True则返回'X',如果是false则返回'O',否则使用''.我甚至不确定这是否可能,但我无法在互联网上找到任何信息,所以我真的很感激任何帮助:)

Ada*_*ith 15

您可以在匿名函数中使用匿名dict来测试这个,使用默认值dict.get来表示您的最终"else"

y = lambda sym: {False: 'X', True: 'Y'}.get(sym, ' ')
Run Code Online (Sandbox Code Playgroud)


Cri*_*scu 14

else以前错过了一次'O'.有效:

y = lambda symbol: 'X' if symbol==True else 'O' if symbol==False else ' '
Run Code Online (Sandbox Code Playgroud)

但是,我认为你应该坚持亚当·斯密的方法.我发现更容易阅读.