Difference between == and is operator in Python

Course Curriculum

Difference between == and is operator in Python

Difference between == and is operator in Python

The Equality operator (==) compares the values of both the operands and checks for value equality. Whereas the ‘is’ operator checks whether both the operands refer to the same object or not.

# python3 code to
# illustrate the
# difference between
# == and is operator
# [] is an empty list
list_1 = []
list2 = []
list3=list_1

if (list_1 == list2):
print("True")
else:
print("False")

if (list_1 is list2):
print("True")
else:
print("False")

if (list_1 is list3):
print("True")
else:
print("False")

list3 = list3 + list2

if (list_1 is list3):
print("True")
else:
print("False")
Output:

True
False
True
False

  • The output of the first if the condition is “True” as both list_1 and list2 are empty lists.
  • Second, if the condition shows “False” because two empty lists are at different memory locations. Hence list_1 and list2 refer to different objects. We can check it with id() function in python which returns the “identity” of an object.
  • The output of the third if the condition is “True” as both list_1 and list3 are pointing to the same object.
  • The output of the fourth if the condition is “False” because the concatenation of two lists always produces a new list.

list_1 = []
list2 = []

print(id(list_1))
print(id(list2))
Output:

139877155242696
139877155253640
This shows list_1 and list2 refers to different objects.

a += b is not always a = a + b (Prev Lesson)
(Next Lesson) Python Membership and Identity Operators