Heim >Backend-Entwicklung >Python-Tutorial >Python-String-Vergleich: Wann unterscheidet sich „==' von „is'?

Python-String-Vergleich: Wann unterscheidet sich „==' von „is'?

Barbara Streisand
Barbara StreisandOriginal
2024-12-26 16:39:14617Durchsuche

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

Eintauchen in die Diskrepanz beim String-Vergleich: '==' vs. 'is'

Der Vorgang des Vergleichens von Strings mit entweder '==' ' oder 'ist' können gelegentlich zu gegensätzlichen Ergebnissen führen. Dies wirft die Frage auf, warum diese Ungleichheit besteht.

Zwei String-Variablen können den gleichen Wert haben, dennoch gibt „s1 == s2“ durchweg „True“ zurück, während „s1 is s2“ manchmal „False“ zurückgibt.

Bei der Interpretation in Python gelingen ähnliche Vergleiche:

>>> s1 = 'text'
>>> s2 = 'text'
>>> s1 is s2
True

Um dieses Phänomen zu verstehen, ist es wichtig, zwischen Identitätstests zu unterscheiden ('ist') und Gleichheitsprüfung ('==').

Im bereitgestellten Beispiel wird das, was auftritt, im Interpreter wie folgt reproduziert:

>>> a = 'pub'
>>> b = ''.join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False

Die Ungleichheit entsteht, weil ' „is“ vergleicht die Identitäten des Objekts (d. h. Speicheradressen), während „==“ deren Werte vergleicht. Im obigen Szenario haben „a“ und „b“ denselben Wert, existieren aber getrennt im Speicher.

Daher ist es logisch, dass „a is b“ als „Falsch“ ausgewertet wird, da es sich um unterschiedliche Objekte handelt ihre Inhalte stimmen überein. Im Wesentlichen ist „a ist b“ vergleichbar mit „id(a) == id(b)“.

Das obige ist der detaillierte Inhalt vonPython-String-Vergleich: Wann unterscheidet sich „==' von „is'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn