Warum das Ändern einer Liste eine andere unerwartet verändert
In Python kommt es häufig vor, dass sich das Ändern einer Liste unerwartet auf eine andere auswirkt. Lassen Sie uns untersuchen, warum dies geschieht.
Betrachten Sie den folgenden Code:
<code class="python">v = [0, 0, 0, 0, 0, 0, 0, 0, 0] vec = v vec[5] = 5</code>
Nach der Ausführung dieses Codes zeigen sowohl v als auch vec die folgende geänderte Liste an: [0, 0, 0, 0, 0, 5, 0, 0, 0].
Erklärung:
vec und v sind keine separaten Listen, sondern Verweise auf dieselbe Liste im Speicher. Wenn Sie vec = v zuweisen, erstellen Sie keine neue Liste; Stattdessen geben Sie vec die gleiche Adresse wie v. Daher wirken sich alle an vec vorgenommenen Änderungen direkt auf die ursprüngliche Liste aus, auf die sowohl v als auch vec verweisen.
Lösung:
Um eine Kopie von v zu erstellen und nicht nur einen Verweis darauf, sollten Sie die folgende Syntax verwenden:
<code class="python">vec = list(v)</code>
Durch using list(v) erstellen Sie eine neue Liste mit denselben Elementen wie v. Alle an vec vorgenommenen Änderungen wirken sich nicht auf v aus und umgekehrt.
Das obige ist der detaillierte Inhalt vonWarum scheint das Ändern einer Liste in Python eine andere zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!