Python identity operators
Created By: chatGPT
In Python, identity operators are used to compare the memory locations of two objects. The two identity operators are
is
and is not
. These operators are essential when you want to check if two variables point to the same object in memory.a = [1, 2, 3]
b = a
c = list(a)
# Using the identity operator 'is'
print(a is b) # True, because b references the same list as a
print(a is c) # False, c is a new list created from a
# Using the identity operator 'is not'
print(a is not c) # True, because c is not the same object as a
print(a is not b) # False, because b is the same object as a
The
is
operator returns True if both variables point to the same object, while the is not
operator returns True if they point to different objects. This distinction is particularly useful when dealing with mutable and immutable objects.x = 42
y = 42
z = 23
# Checking identity
print(x is y) # True, because integers are cached in Python
print(x is z) # False, because x and z are different integers
# Mutable objects
list1 = [1, 2, 3]
list2 = list1
list3 = list(list1)
print(list1 is list2) # True
print(list1 is list3) # False
print(list1 is not list3) # True
It’s crucial to remember that
is
checks for the identity of the objects, not the equality of their contents. For checking equality of values, you should use the ==
operator instead.a = [1, 2, 3]
b = [1, 2, 3]
# Checking equality
print(a == b) # True, because their contents are equal
print(a is b) # False, because they are different objects in memory