How to apply a logical operator to all elements in a python list

后端 未结 6 1733
日久生厌
日久生厌 2021-01-29 22:25

I have a list of booleans in python. I want to AND (or OR or NOT) them and get the result. The following code works but is not very pythonic.

def apply_and(alist         


        
6条回答
  •  误落风尘
    2021-01-29 22:59

    ANDing and ORing is easy:

    >>> some_list = [True] * 100
    # OR
    >>> any(some_list)
    True
    #AND
    >>> all(some_list)
    True
    >>> some_list[0] = False
    >>> any(some_list)
    True
    >>> all(some_list)
    False
    

    NOTing is also fairly easy:

    >>> [not x for x in some_list]
    [True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
    

    Of course, how you would use those results might require some interesting applications of DeMorgan's theorem.

提交回复
热议问题