Heim > Backend-Entwicklung > Python-Tutorial > Warum scheint das Ändern einer Liste in Python eine andere zu ändern?

Warum scheint das Ändern einer Liste in Python eine andere zu ändern?

Patricia Arquette
Freigeben: 2024-11-02 13:05:30
Original
959 Leute haben es durchsucht

Why Does Modifying One List Seem to Change Another in Python?

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 dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage