我想知道你是否可以将一系列条件作为条件传递,特别是在Python中?
例如:
conditions = [True, False, True, True, False]
if conditions:
<do stuff>
当我给它这样的东西时,Python不会抛出错误,但我不确定它是否正在做我想要它做的事情。它实际上是在比较整个列表吗?如果是这样,它是and
还是or
?或者它是在做一些不同的事情,比如只比较第一项?
答案 0 :(得分:4)
空列表是&#34; false&#34 ;;所有其他人都是&#34; true&#34;。如果您希望在 all 条件为真的情况下执行操作,请使用
if all(conditions):
<do stuff>
如果您希望在任何条件为真的情况下执行操作,请使用
if any(conditions):
<do stuff>
答案 1 :(得分:2)
如果列表非空,则列表将传递if测试。因此,[]
将为false,并且所有其他值都将为测试目的而为真。
如果您想测试列表的任何值是否为True,您可以使用any
来执行此操作。如果您想测试所有值是否为真,请以相同的方式使用all
。
示例:
if any(conditions):
do something
答案 2 :(得分:0)
使用all:
if all(conditions):
...
答案 3 :(得分:0)
只需使用all
:
>>> conditions = [True, False, True, True, False]
>>> all(conditions)
False
>>> conditions = [True, True, True, True, True]
>>> all(conditions)
True
>>>
来自文档:
如果iterable的所有元素都为true(或者iterable为空),则返回True。