我试图在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)
但是,我认为你应该坚持亚当·斯密的方法.我发现更容易阅读.
归档时间: |
|
查看次数: |
17386 次 |
最近记录: |