ALA*_*LAN 1 python if-statement python-3.x
我正在尝试创建一个if else代码,其中elif有大约20个条件,我如何创建一个条件列表,我可以输入如下内容:
uno= <9
lol= >20
crad= =<3
list={uno,lol,crad}
if 13=list:
print("yay")
elif 13!=list:
print("nay")
Run Code Online (Sandbox Code Playgroud)
这是我当前的代码它应该打印"yay",而不是语法错误
它实际上并不比编写if/ elif/ elifetc 链更简单,但是像这样的东西似乎就是你所要求的:
predicates = [lambda x: x<9, lambda x: x>20, lambda x: x<=3]
if all(y(13) for y in predicates):
print("yay")
else:
print("nay")
Run Code Online (Sandbox Code Playgroud)
每个谓词都是一个小的匿名函数(a lambda),它接收一个参数并计算为True或者False.如果你有大量的参数需要检查大量的谓词,那么能够像这样封装谓词是很好的.从列表中以编程方式添加或删除谓词的能力确实扩展了此构造的多功能性,超出了您(可以轻松地,自然地)使用if/ elif/ elif.
对于单个数字,这个特定的谓词集不可能都是真的.也许你想要any()而不是all()......?