Python Object Comparison : “is” vs “==”
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).
Contact Us