lambda函数中的多个if语句

时间:2015-10-30 15:23:40

标签: python lambda

我试图在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'如果它是假的,' '除此以外。我甚至不确定这是否可能,但我还没有能够在互联网上找到任何信息,所以我真的很感激任何帮助:)

2 个答案:

答案 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。我发现更容易阅读。