布尔数组元素的 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
我有一个可变长度的布尔数组,如下所示:
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