我有一个包含一定数量的子列表的列表。
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]