Heim >Backend-Entwicklung >Python-Tutorial >Python-String-Vergleich: Wann unterscheidet sich „==' von „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!