我有一个可变长度的布尔数组,如下所示:
ARR = [True, False, True, False,...]
是否有最简单的方法(单行)对所有元素执行AND操作,如下所示?
ARR[0] and ARR[1] and ARR[2] and ARR[3] and ARR[*]...
答案 0 :(得分:2)
有一个名为all
的内置函数,它将and
所有参数组合在一起。例如:
>>> ARR = [True, False, True, False,]
>>> all(ARR)
False
和
>>> ARR2 = [True, True, True,]
>>> all(ARR2)
True
all
的论点不一定是布尔值列表。只要python可以将其评估为true或false,就可以使用任何东西。例如:
>>> all([True, 10, 'name'])
True
>>> all([True, 0, 'name'])
False
答案 1 :(得分:1)
由于您希望完成and
操作,如果列表中的所有元素都为True,则应返回True。所以这个简单的行将会:
print(False not in bool_list)
此行在给定列表中查找False,从而在技术上执行and
操作
答案 2 :(得分:0)
你会使用for循环:
a = true
for x in ARR:
if !x:
a = false
print(a)
当然要在一行中执行此操作,您可以将其转换为函数并调用它。