在 Python 中执行多个列表的逻辑或操作



我有一个包含一定数量的子列表的列表。

list1=[ [True,False,True,False], [False,False,True,False],[True,False,True,True], .....]

我想在 Python 中执行这些子列表的逻辑或,但子列表的数量未知。对于两个列表,我可以做numpy.logical_or但是我怎么能为多个子列表做呢?

@Ian的答案比我原来的答案要好。zip所有列表以按列组合其元素,执行转置,并将每列运行到any

>>> matrix = [
...     [True, False, True, False],
...     [False, False, True, False],
...     [True, False, True, True],
... ]
>>> [any(column) for column in zip(*matrix)]
[True, False, True, True]

我删除了我原来的答案,这是次优的。

跟进@ggorlen的回答

list1 = [ 
[True,False,True,False], 
[False,False,True,False],
[True,False,True,True]
]
[any(l) for l in zip(*list1)]

输出

[True, False, True, True]

相关内容

  • 没有找到相关文章

最新更新