Heim > Backend-Entwicklung > Python-Tutorial > Wann geben die Operatoren „is' und „==' in Python unterschiedliche Ergebnisse zurück?

Wann geben die Operatoren „is' und „==' in Python unterschiedliche Ergebnisse zurück?

Barbara Streisand
Freigeben: 2024-12-12 14:58:21
Original
904 Leute haben es durchsucht

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

Verstehen des „is“-Operators

Obwohl die gleichen Werte vorliegen, besteht bei der Verwendung des „is“-Operators ein häufiges Missverständnis in der Annahme Es vergleicht die Variablenwerte. Allerdings wertet dieser Operator tatsächlich aus, ob zwei Variablen auf dasselbe Objekt verweisen.

In Ihrem Beispiel kann der folgende Code:

x = [1, 2, 3]
y = [1, 2, 3]
Nach dem Login kopieren

dazu führen, dass Sie erwarten, dass der „is“-Operator zurückkehrt Stimmt, aber es wird Falsch zurückgegeben:

print(x is y)  # False
Nach dem Login kopieren

Das liegt daran, dass x und y, obwohl sie dieselben Werte haben, als zwei unterschiedliche Listen betrachtet werden. Es handelt sich um unterschiedliche Objekte, wie ihre eindeutigen Bezeichner erkennen lassen:

print(id(x))
print(id(y))  # Different identifiers indicate different objects
Nach dem Login kopieren

Um Werte zu vergleichen, verwenden Sie stattdessen den Operator „==":

print(x == y)  # True for equal values
Nach dem Login kopieren

Eine Änderung einer der Listen ist nicht möglich wirken sich auf die anderen aus und bestätigen, dass es sich um separate Objekte handelt:

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

Durch die Zuweisung von y zu x wird eine neue Referenz erstellt, die auf dieselbe Liste verweist Objekt:

x = y
print(id(x))
print(id(y))  # Same identifiers after assignment
print(x is y)  # True (Same object)
Nach dem Login kopieren

Denken Sie daran, dass der „is“-Operator die Objektidentität testet, während der „=="-Operator Werte vergleicht. Verwenden Sie sie mit Bedacht, um potenzielle Verwirrung beim Verständnis des Variablenreferenzierungsverhaltens zu vermeiden.

Das obige ist der detaillierte Inhalt vonWann geben die Operatoren „is' und „==' in Python unterschiedliche Ergebnisse zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage