Warum die append()- und =-Operatoren in Python unterschiedliche Ergebnisse mit Listen erzeugen
In Python verhalten sich die append()-Methode und der =-Operator anders, wenn es auf Listen angewendet wird. Auch wenn es den Anschein hat, als würden beide Elemente an eine vorhandene Liste anhängen, erzeugen sie aufgrund ihrer zugrunde liegenden Operationen tatsächlich unterschiedliche Ergebnisse.
append()
Die append()-Methode direkt Hängt ein Objekt, sei es ein Element oder eine andere Liste, an das Ende der ursprünglichen Liste an. Dieser Vorgang führt dazu, dass ein Verweis auf die ursprüngliche Liste zur Liste hinzugefügt wird.
=-Operator
Andererseits führt der =-Operator eine elementweise Addition von durch die beiden Operanden. Bei Verwendung mit Listen werden die Elemente des zweiten Operanden effektiv mit dem Ende des ersten Operanden verkettet und so eine neue Liste erstellt.
Beispiel
Betrachten Sie den folgenden Code :
<code class="python">>>> c = [1, 2, 3] # Appending a list to itself using append() leads to infinite recursion c.append(c) # Element-wise addition using += concatenates the lists c += c</code>
Ausgabe
Im ersten Fall erzeugt das Anhängen der Liste c an sich selbst mit c.append(c) eine unendliche Rekursion. Dies liegt daran, dass das letzte Element von c tatsächlich eine Referenz auf c selbst ist und diese Referenz an die Liste angehängt wird, was zu einer Endlosschleife führt.
Im zweiten Fall wird die Verwendung von c = c elementweise ausgeführt Zusatz. Dies bedeutet, dass die Elemente von c zu sich selbst addiert werden, was zu einer neuen Liste [1, 2, 3, 1, 2, 3] führt.
Alternative: extension()
Wenn das gewünschte Verhalten darin besteht, die Elemente einer Liste an eine andere anzuhängen, kann die Methode „extend()“ anstelle von = verwendet werden. Es ändert die ursprüngliche Liste an Ort und Stelle, ohne eine neue Liste zu erstellen.
<code class="python">c.extend([4, 5, 6])</code>
Fazit
Zusammenfassend lässt sich sagen, dass die append()-Methode von Python Objekte direkt an das Ende von anhängt eine Liste, während der =-Operator mit Listen eine elementweise Addition durchführt und eine neue Liste erstellt. Die Wahl der Methode hängt von der beabsichtigten Operation ab und davon, ob eine Änderung der ursprünglichen Liste gewünscht wird.
Das obige ist der detaillierte Inhalt vonWann erzeugen die Operatoren „append()' und „=' in Python unterschiedliche Ergebnisse mit Listen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!