
The not operator is used to negate or reverse values in Python.
The easiest example of using this operator is when you have a boolean value as follows:
val = True
print(not val) # False
The value True is flipped to False using the not operator.
You can use the not operator to flip a list of boolean values like this:
the_list = [False, True, False, True]
new_list = [not item for item in the_list]
print(new_list) # [True, False, True, False]
The not operator is commonly used when you need to check for a specific condition in your code.
You can check if a variable is the same as another variable, reverse a value from True to False and vice versa, and check if a certain value exists in a collection.
There are two ways you can write a condition using this operator:
x = True
y = False
# 1. Negate positive expression
if not x is y:
pass
# 2. Inline negation of an expression
if x is not y:
pass
Both negations in the example above achieve the same result, but the second way is easier to read and understand than the first one.
This small difference can make a big impact on the readability of your code.
For example, suppose you want to test if a certain value exists in a list.
You can do it in two ways like this:
numbers = [1, 2, 3, 4]
print(not 5 in numbers)
print(5 not in numbers)
Again, the results are the same, but the second way of including not is easier to read than the former, right?
The not operator is very useful for checking the truth value of expressions. It can help you to decide the course of action available in your application.