Skip to content
Related Articles

Related Articles

Difference between == and is operator in Python

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 28 Jul, 2022
View Discussion
Improve Article
Save Article

The Equality operator (==) is a comparison operator in Python that compare values of both the operands and checks for value equality. Whereas the ‘is’ operator is the  identity operator that checks whether both the operands refer to the same object or not (present in the same memory location).

Illustration:

# Equality operator
>>> a=10
>>>b=10
>>>a==b
True

>>>a=10     
>>>id(a)
2813000247664   

>>>b=10
2813000247664    # Both a and b is pointing to the same object

>>>a is b
True

>>>c=a       # Here variable a is assigned to new variable c, which holds same object and same memory location

>>> id(c)
2813000247664

>>>a is c     
True

Example 1:

Python3




# python3 code to 
# illustrate the 
# difference between
# == and is operator
# [] is an empty list
list1 = []
list2 = []
list3=list1
  
if (list1 == list2):
    print("True")
else:
    print("False")
  
if (list1 is list2):
    print("True")
else:
    print("False")
  
if (list1 is list3):
    print("True")
else:    
    print("False")
  
list3 = list3 + list2
  
if (list1 is list3):
    print("True")
else:    
    print("False")

Output: 

True
False
True
False
  • The output of the first if the condition is “True” as both list1 and list2 are empty lists.
  • Second, if the condition shows “False” because two empty lists are at different memory locations. Hence list1 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 list1 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.

Example 2

Python3




list1 = []
list2 = []
  
print(id(list1))
print(id(list2))

Output: 

139877155242696
139877155253640

This shows that list1 and list2 refer to different objects.


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!