I have a boolean list in Python
mylist = [True , True, False,...]
which I want to change to the logical opposite [False, False, True , ...]
Is there an inbuilt way to do this in Python (something like a call not(mylist)
) without a hand-written loop to reverse the elements?
And the "not" ( ! ) operator returns the opposite of the boolean value to its right. That is, true becomes false and false becomes true .
You can convert True and False to strings 'True' and 'False' with str() . Non-empty strings are considered True , so if you convert False to strings with str() and then back to bool type with bool() , it will be True .
It's easy with list comprehension:
mylist = [True , True, False] [not elem for elem in mylist]
yields
[False, False, True]
The unary tilde operator (~) will do this for a numpy.ndarray. So:
>>> import numpy >>> mylist = [True, True, False] >>> ~numpy.array(mylist) array([False, False, True], dtype=bool) >>> list(~numpy.array(mylist)) [False, False, True]
Note that the elements of the flipped list will be of type numpy.bool_ not bool.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With