布尔数组元素的 AND 运算

AND operation for Boolean array's elements

我有一个可变长度的布尔数组,如下所示:

ARR = [True, False, True, False,...]

有没有最简单的方法(单行)对所有元素进行AND运算,如下所示?

ARR[0] and ARR[1] and ARR[2] and ARR[3] and ARR[*]...

您将使用 for 循环:

a = true
for x in ARR:
    if !x:
        a = false
print(a)

当然,要在一行中执行此操作,您可以将其转换为一个函数并调用它。

有一个名为 all 的内置函数,它将 and 所有参数组合在一起。例如:

>>> ARR = [True, False, True, False,]
>>> all(ARR)
False

并且:

>>> ARR2 = [True, True, True,]
>>> all(ARR2)
True

更多

all 的参数不必是布尔值列表。只要 python 可以将其评估为真或假,就可以使用任何东西。例如:

>>> all([True, 10, 'name'])
True
>>> all([True, 0, 'name'])
False

由于您希望完成 and 操作,因此如果列表中的所有元素都为真,则它应该 return 为真。所以这条简单的线就可以了:

print(False not in bool_list)

此行在给定列表中查找 False,因此在技术上执行 and 操作

不是这个问题的答案,但如果有人也想知道如何“和”False 的数组,您可以尝试以下操作:

if not sum([False, False, False, ...]):
    # enters this block when the array only contains False
else:
    # there is at least one True value in the array