【问题标题】:Performing a logical or operation of multiple lists in Python在 Python 中执行多个列表的逻辑或运算
【发布时间】:2018-09-28 21:45:09
【问题描述】:

我有一个包含一些子列表的列表。

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

我想在 Python 中执行逻辑或这些子列表,但子列表的数量未知。对于两个列表,我可以使用numpy.logical_or,但如何为多个子列表执行此操作?

【问题讨论】:

    标签: python-3.x logical-operators


    【解决方案1】:

    跟进@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]
    

    【讨论】:

      【解决方案2】:

      @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]
      

      我删除了不理想的原始答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-03
        • 1970-01-01
        • 1970-01-01
        • 2016-10-04
        相关资源
        最近更新 更多