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!