首页 > 解决方案 > 根据 AND 或 OR 条件组合布尔值列表

问题描述

对于基于 OR 组合两个布尔值列表,np.logical_or可以使用,并且可以使用相似性 AND 来完成np.logical_and

但是,如果我有一个包含 10 个布尔值列表的列表,并且想使用 AND 或 OR 将它们组合起来,我找不到一个简单的方法来做到这一点。

你能建议最有效的方法吗?

编辑:

booleans = [[True, True, False, True, False], [True, False, False, False, False], [True, False, False, False, False]]

或输出:[True, True, False, True, False]

与输出:[True, False, False, False, False]

谢谢,杰克

标签: pythonlistboolean

解决方案


这是一个没有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]
>>> 

推荐阅读