Common mistakes we make in Python and why we should avoid that part 2

This is part 2 of the series. If you are new, you can check part 1 .

Today we are going to discuss “. In Python, sometimes we use is and == operators interchangeably. It will work at times, but not always. Let me explain this with an example.

Before getting into the topic, we all should know something about a Python object. Every Python object has two things in common:

  • First, its memory reference — Memory id can be found using the id function.
  • Second, its value

What does ‘is’ operator do:

The is operator checks whether two objects are pointing to the same memory location.

What does ‘==’ operartor do:

The == operator checks if the value of the operator is the same.

>>> a = [1, 2, 3] 
>>> b = [1, 2, 3]
>>> a == b True
>>> a is b False
>>> id(a) 140281424436160
>>> id(b) 140281424966208
>>> a = [1,2,3]
>>> b = a
>>> a == b True
>>> a is b True
>>> id(a) 140281424966208
>>> id(b) 140281424966208

Here in this example, both is and == return the same result as both of them are pointing to the same memory location.

Note: For small common strings and integers in the range -5 to 256 the memory location will be the same. Python does this for optimization. This is a big topic that can be discussed later on in an article.

What is the solution:

If you are checking equality, then always use the == operator. Use is operator only when you are checking if an object is the same as another like

happy coding !!

Originally published at

Coding, Reading,Python