Home >Backend Development >Python Tutorial >When Do `is` and `==` Operators Return Different Results in Python?

When Do `is` and `==` Operators Return Different Results in Python?

Barbara Streisand
Barbara StreisandOriginal
2024-12-12 14:58:21913browse

When Do `is` and `==` Operators Return Different Results in Python?

Understanding the "is" Operator

Despite having the same values, when using the "is" operator, a common misconception is to assume it compares the variable values. However, this operator actually evaluates whether two variables refer to the same object.

In your example, the following code:

x = [1, 2, 3]
y = [1, 2, 3]

may lead you to expect the "is" operator to return True, but it returns False:

print(x is y)  # False

This is because x and y, despite sharing the same values, are considered two distinct lists. They are different objects, as revealed by their unique identifiers:

print(id(x))
print(id(y))  # Different identifiers indicate different objects

To compare values, use the "==" operator instead:

print(x == y)  # True for equal values

Modifying one of the lists will not affect the other, confirming they are separate objects:

x[0] = 4
print(y)  # [1, 2, 3] (Unchanged)

Assigning y to x creates a new reference pointing to the same list object:

x = y
print(id(x))
print(id(y))  # Same identifiers after assignment
print(x is y)  # True (Same object)

Remember, the "is" operator tests object identity, while the "==" operator compares values. Use them judiciously to avoid potential confusion in understanding variable referencing behavior.

The above is the detailed content of When Do `is` and `==` Operators Return Different Results in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn