对 Python 中的多个列表执行逻辑或操作
Performing a logical or operation of multiple lists in 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]
我有一个包含一些子列表的列表。
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]