Open In App

Python Object Comparison : “is” vs “==”

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Both “is” and “==” are used for object comparison in Python. The operator “==” compares values of two objects, while “is” checks if two objects are same (In other words two references to same object).




# Python program to demonstrate working of 
# "=="
  
# Two different objects having same values
x1 = [10, 20, 30]
x2 = [10, 20, 30]
  
# Comparison using "==" operator
if  x1 == x2:
    print("Yes")
else:
    print("No")


Output:

Yes

The “==” operator does not tell us whether x1 and x2 are actually referring to the same object or not. We use “is” for this purpose.




# Python program to demonstrate working of 
# "is"
  
# Two different objects having same values
x1 = [10, 20, 30]
x2 = [10, 20, 30]
  
# We get "No" here
if  x1 is x2:
    print("Yes")
else:
    print("No")
  
# It creates another reference x3 to same list.
x3 = x1
  
# So we get "Yes" here
if  x1 is x3:
    print("Yes")
else:
    print("No")
  
# "==" would also produce yes anyway
if  x1 == x3:
    print("Yes")
else:
    print("No")


Output:

No
Yes
Yes




x1 = [10, 20, 30]
  
# Here a new list x2 is created using x1
x2 = list(x1)
  
# The "==" operator would produce "Yes"
if  x1 == x2:
    print("Yes")
else:
    print("No")
  
# But "is" operator would produce "No"
if  x1 is x2:
    print("Yes")
else:
    print("No")


Output:

Yes
No


Conclusion:

  • “is” returns True if two variables point to the same object.
  • “==” returns True if two variables have same values(or content).



Last Updated : 10 Sep, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads