Python 基于AND或or条件组合布尔值列表
对于基于或的两个布尔值列表的组合,可以使用Python 基于AND或or条件组合布尔值列表,python,list,boolean,Python,List,Boolean,对于基于或的两个布尔值列表的组合,可以使用np.logical\u或,可以使用np.logical\u和完成相似性和 但是,如果我有一个包含10个布尔值列表的列表,并且希望使用and或or组合它们,那么我找不到一个简单的方法来实现这一点 你能建议一下最有效的方法吗 编辑: 或输出:[True,True,False,True,False] 和输出:[真,假,假,假,假] 谢谢, 杰克这是一个没有numpy的解决方案 >>> booleans = [[True, True, Fal
np.logical\u或
,可以使用np.logical\u和
完成相似性和
但是,如果我有一个包含10个布尔值列表的列表,并且希望使用and或or组合它们,那么我找不到一个简单的方法来实现这一点
你能建议一下最有效的方法吗
编辑:
或输出:[True,True,False,True,False]
和输出:[真,假,假,假,假]
谢谢,
杰克这是一个没有numpy的解决方案
>>> booleans = [[True, True, False, True, False], [True, False, False, False, False], [True, False, False, False, False]]
>>> or_output = list(map(any, zip(*booleans)))
>>> and_output = list(map(all, zip(*booleans)))
>>>
>>> print (or_output)
[True, True, False, True, False]
>>> print (and_output)
[True, False, False, False, False]
>>>
你能添加一个输入->输出的例子吗?你在这里组合列表是什么意思?如果你想要一个NumPy数组作为输出,请使用
NumPy.logical\u和.reduce
-或者更一般地说。我评论的可能重复,因为如果OP使用NumPy,这是重复的多次np。任何
和np。所有
都完成了同样的事情。如果您能演示如何将函数f
传递到map
@wheaties的周围结构中,那么这个解决方案也会对列表进行两次压缩,而这很容易做到一次。@RoadRunner从“使用and和or”的问题开始-似乎没有必要同时做这两件事。
>>> booleans = [[True, True, False, True, False], [True, False, False, False, False], [True, False, False, False, False]]
>>> or_output = list(map(any, zip(*booleans)))
>>> and_output = list(map(all, zip(*booleans)))
>>>
>>> print (or_output)
[True, True, False, True, False]
>>> print (and_output)
[True, False, False, False, False]
>>>