我试图在python lambda函数中使用3个if语句。这是我的代码:
y=lambda symbol: 'X' if symbol==True 'O' if symbol==False else ' '
我已经能够得到两个if语句就可以了。例如。
x=lambda cake: "Yum" if cake=="chocolate" else "Yuck"
基本上,我想要一个lambda函数来使用if语句返回' X'如果符号为True,则' O'如果它是假的,' '除此以外。我甚至不确定这是否可能,但我还没有能够在互联网上找到任何信息,所以我真的很感激任何帮助:)
答案 0 :(得分:14)
您可以在匿名函数中使用匿名字典来测试此问题,使用默认值dict.get
来表示您的最终“其他”
y = lambda sym: {False: 'X', True: 'Y'}.get(sym, ' ')
答案 1 :(得分:13)
else
之前您遗漏了'O'
。 This有效:
y = lambda symbol: 'X' if symbol==True else 'O' if symbol==False else ' '
但是,我认为你应该坚持Adam Smith's approach。我发现更容易阅读。