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
Barbara StreisandOriginal
2024-12-12 14:58:21913Durchsuche

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]

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

print(x is y)  # False

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

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

print(x == y)  # True for equal values

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)

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)

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!

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