What is the Difference Between is and == in Python?

What is the Difference Between is and == in Python?

It’s really confusing for Python programmer. When to use ‘is’? When to use ‘==’?

And what is the Difference Between is and == in Python?

Before getting into the difference here is quick syntax, you should understand.

A syntax for “is” expression:

a is b

A Syntax for “==” (equals) expression:

a == b

Note: Where ‘a’ and ‘b’ are two different Python objects.

If we consider it as a native language, both expression seems to be doing the same work. But does not hold true for Python.

So to find the difference between them, let’s make it simple.

I will give you quick demonstration by using ”is” and “==” expressions with Python list.

Difference Between is and == in Python | “is” vs “==”

  • The “is” expressions in Python evaluates and returns to True if two variables point to the same Python data object.
  • The “==” expression holds True if the objects referred to by the variables are equal.

Without getting heedless, let’s take the example of using “is” and “==” on the Python list.

“is” expression with List object: 

a = [1, 2, 3]

b = a
a is b
#True

c = list(a)
a is c
#False

So are you surprised by the output?

  • When you use “b = a”, it does not create a new list. In fact, it creates a pointer pointing to the same list. As ‘a’ and ‘b’ points to the same list, ‘is’ expression returns True.
  • When you use “c = list(a)”, it copies all the list values from list ‘a’ and creates a new list object. Now list ‘a’ and ‘c’ have the same data but occupies a different memory location. As ‘a’ and ‘c’ are two different lists, ‘is’ expression returns False.

Then how “==” (equals) is different from “is”?

“==” expression with List object:

a = [1, 2, 3]

b = a
a == b
#True

c = list(a)
a == c
#True

  • As told above, expression “b = a” does not create a new list so the content will be the same pointed by two different list objects. So it will return True if you do “a == b”.
  • “c = list(a)” creates new list but both the list carries same data contents. So “a == c” evaluates to True.

Related read to explore Python List:

This is all about the Difference Between is and == in Python. I know its little confusing. If you have any comment, feel free to write below.

Leave a Reply

Your email address will not be published. Required fields are marked *