使用布尔数组作为条件

时间:2017-05-17 20:05:37

标签: python

我想知道你是否可以将一系列条件作为条件传递,特别是在Python中?

例如:

conditions = [True, False, True, True, False]

if conditions:
    <do stuff>

当我给它这样的东西时,Python不会抛出错误,但我不确定它是否正在做我想要它做的事情。它实际上是在比较整个列表吗?如果是这样,它是and还是or?或者它是在做一些不同的事情,比如只比较第一项?

4 个答案:

答案 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。