我正在尝试创建一个 if else 代码,其中 elif 有大约 20 个条件,我如何创建一个条件列表,我可以在其中键入诸如以下内容:
uno= <9
lol= >20
crad= =<3
list={uno,lol,crad}
if 13=list:
print("yay")
elif 13!=list:
print("nay")
这是我当前的代码 它应该打印“yay”,而不是语法错误
最佳答案
它实际上并不比编写 if
/elif
/elif
等链更简单,但是像这样的东西似乎可以满足您的需求问:
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")
每个谓词都是一个小的匿名函数(lambda
),它接收一个参数并求值为 True
或 False
。如果你有大量的参数,你想检查大量的谓词,能够像这样封装谓词是很好的。以编程方式在列表中添加或删除谓词的能力真正扩展了此构造的多功能性,超出了您可以(轻松、自然地)使用 if
/elif
/ 进行的操作elif
.
这组特定的谓词不可能对单个数字都成立。也许您想要 any()
而不是 all()
...?
关于python - 如何创建条件列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47690558/