Identity vs Equality in Python

 This topic is extremely important if you are learning Python as a beginner. 

Golden Rule

  • == → compares values

  • is → compares memory identity


Example 1:
In the following example, even though values are the same, a and b are different objects in memory.
a = [1, 2, 3]
b = [1, 2, 3]

print(a == b)  # True
print(a is b)  # False

Example 2:

In this example, a and b are equal and as well as identical. This is because Python reuses small integers to optimize memory usage which is known as Integer Interning.

a = 256
b = 256
print(a == b) # False
print(a is b)  # True

Example 3:
The same logic applies to string values since Python reuses small string values to optimize memory usage as well.
a = "hello"
b = "hello"
print(a is b)  # True

Example 4:
In the following example, the values are equal  but they are different objects.
a = "".join(["he", "llo"])
b = "hello"
print(a is b)  # False

Comments

Popular posts from this blog

What Is a Design Pattern and Why Should We Use It?

Distributed Version Control System - Part 1

Distributed Version Control System - Part 2