Python provides two very similar equality operators used for comparisons:
==
), also known as the equality operatoris
keyword, also known as the identity operatorAlthough similar to one another, the double equals (==
) and the is
keyword are used for different comparison purposes and yield different results.
The main difference between the two is that the is
keyword checks for reference equality while the double equals (==
) operator checks for value equality. In other words, is
will return True
if two variables both refer to the same object in memory (aka. identity), whereas the double equals operator will evaluate to True
if the two objects have the same value.
Here are some examples to clear up any confusion:
a = [1, 2, 3]
b = a
c = [x for x in a]
print([
a == b, # True
a is b, # True
a == c, # True
a is c # False
])
x = 'hi'
y = x
z = 'HI'.lower()
print([
x == y, # True
x is y, # True
x == z, # True
x is z # False
])
Python, String
Learn of the two different way to convert a string to lowercase in Python and understand when you should use each one with this quick guide.
Python, List
Returns the difference between two lists, after applying the provided function to each list element of both.
Python, List
Returns the symmetric difference between two lists, after applying the provided function to each list element of both.