Maison > développement back-end > Tutoriel Python > Comparaison de chaînes Python : quand `==` diffère-t-il de `is` ?

Comparaison de chaînes Python : quand `==` diffère-t-il de `is` ?

Barbara Streisand
Libérer: 2024-12-26 16:39:14
original
614 Les gens l'ont consulté

Python String Comparison: When Does `==` Differ From `is`?

Explorer l'écart entre la comparaison de chaînes : '==' vs 'is'

L'acte de comparer des chaînes en utilisant soit '== » ou « est » peuvent parfois donner des résultats contrastés. Cela soulève la question de savoir pourquoi cette disparité existe.

Deux variables de chaîne peuvent avoir la même valeur, mais « s1 == s2 » renvoie systématiquement True, alors que « s1 is s2 » renvoie parfois False.

Lorsqu'elles sont interprétées en Python, des comparaisons similaires réussissent :

>>> s1 = 'text'
>>> s2 = 'text'
>>> s1 is s2
True
Copier après la connexion

Pour comprendre ce phénomène, il est crucial de distinguer les tests d'identité ("est") et test d'égalité ('==').

Dans l'exemple fourni, ce qui se produit est répliqué dans l'interpréteur comme suit :

>>> a = 'pub'
>>> b = ''.join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False
Copier après la connexion

La disparité survient parce que ' is' ​​compare les identités des objets (c'est-à-dire les adresses mémoire), tandis que '==' compare leurs valeurs. Dans le scénario ci-dessus, « a » et « b » ont la même valeur mais existent séparément en mémoire.

Par conséquent, il est logique que « a is b » soit évalué à False puisqu'il s'agit d'objets distincts, même si leur contenu s'aligne. Essentiellement, « a is b » s’apparente à « id(a) == id(b) ».

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