Introduction
Identity operators in Python are used to compare the memory locations of two objects. These operators determine whether two variables reference the same object in memory. They are useful for checking the identity of objects rather than their equality.
List of Identity Operators
Here is a list of the identity operators available in Python, along with their descriptions and examples:
1. is
Operator
The is
operator checks if two variables refer to the same object in memory. It returns True
if both variables point to the same object, and False
otherwise.
Example:
x = [1, 2, 3]
y = x
z = [1, 2, 3]
print(x is y) # Output: True (both reference the same list object)
print(x is z) # Output: False (different objects with the same content)
print(x == z) # Output: True (content is the same)
2. is not
Operator
The is not
operator checks if two variables do not refer to the same object in memory. It returns True
if both variables point to different objects, and False
otherwise.
Example:
x = [1, 2, 3]
y = x
z = [1, 2, 3]
print(x is not y) # Output: False (both reference the same list object)
print(x is not z) # Output: True (different objects with the same content)
print(x != z) # Output: False (content is the same)
Examples of Using Identity Operators
Here are some more examples demonstrating the use of identity operators in Python:
Using is
Operator
a = 10
b = 10
print(a is b) # Output: True (small integers are cached and reference the same object)
c = 256
d = 256
print(c is d) # Output: True (small integers are cached and reference the same object)
e = 257
f = 257
print(e is f) # Output: False (larger integers are not cached and reference different objects)
Using is not
Operator
a = "hello"
b = "hello"
print(a is not b) # Output: False (string literals with the same content reference the same object)
c = "hello world"
d = "hello world"
print(c is not d) # Output: True (strings with spaces or larger size may reference different objects)
Using Identity Operators in Conditional Statements
Identity operators are often used in conditional statements to perform actions based on whether variables reference the same object.
Example:
x = [1, 2, 3]
y = x
z = [1, 2, 3]
if x is y:
print("x and y reference the same object.")
else:
print("x and y do not reference the same object.")
# Output: x and y reference the same object.
if x is not z:
print("x and z do not reference the same object.")
else:
print("x and z reference the same object.")
# Output: x and z do not reference the same object.
Conclusion
Identity operators are useful for checking whether two variables reference the same object in memory. The is
operator checks if two variables point to the same object, while the is not
operator checks if they point to different objects. Understanding how to use these operators can help you manage object references more effectively in your Python programs.