Heim  >  Artikel  >  Backend-Entwicklung  >  Wann erzeugen die Operatoren „append()“ und „=“ in Python unterschiedliche Ergebnisse mit Listen?

Wann erzeugen die Operatoren „append()“ und „=“ in Python unterschiedliche Ergebnisse mit Listen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-28 16:53:29378Durchsuche

 When Does Python's `append()` and ` =`  Operator Produce Different Results with Lists?

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!

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