Maison > développement back-end > Tutoriel Python > Quand les opérateurs `is` et `==` renvoient-ils des résultats différents en Python ?

Quand les opérateurs `is` et `==` renvoient-ils des résultats différents en Python ?

Barbara Streisand
Libérer: 2024-12-12 14:58:21
original
906 Les gens l'ont consulté

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

Comprendre l'opérateur « est »

Malgré les mêmes valeurs, lors de l'utilisation de l'opérateur « est », une idée fausse courante est de supposer il compare les valeurs des variables. Cependant, cet opérateur évalue en réalité si deux variables font référence au même objet.

Dans votre exemple, le code suivant :

x = [1, 2, 3]
y = [1, 2, 3]
Copier après la connexion

peut vous amener à vous attendre à ce que l'opérateur "is" renvoie Vrai, mais cela renvoie Faux :

print(x is y)  # False
Copier après la connexion

En effet, x et y, bien qu'ils partagent les mêmes valeurs, sont considérés comme deux listes distinctes. Ce sont des objets différents, comme le révèlent leurs identifiants uniques :

print(id(x))
print(id(y))  # Different identifiers indicate different objects
Copier après la connexion

Pour comparer les valeurs, utilisez plutôt l'opérateur "==" :

print(x == y)  # True for equal values
Copier après la connexion

La modification d'une des listes ne sera pas affecter l'autre, confirmant qu'il s'agit d'objets distincts :

x[0] = 4
print(y)  # [1, 2, 3] (Unchanged)
Copier après la connexion

Attribuer y à x crée une nouvelle référence pointant vers la même liste object :

x = y
print(id(x))
print(id(y))  # Same identifiers after assignment
print(x is y)  # True (Same object)
Copier après la connexion

N'oubliez pas que l'opérateur "is" teste l'identité de l'objet, tandis que l'opérateur "==" compare les valeurs. Utilisez-les judicieusement pour éviter toute confusion potentielle dans la compréhension du comportement de référencement des variables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal