Warum wirkt sich das Ändern einer Liste in Python auf eine andere aus?

DDD
Freigeben: 2024-11-02 12:37:02
Original
837 Leute haben es durchsucht

Why Does Modifying One List Affect Another in Python?

Unerwartet verknüpfte Listen in Python

Beim Arbeiten mit Listen in Python kann es zu unerwarteten Verhaltensweisen kommen. Lassen Sie uns verstehen, warum sich die Änderung einer Liste unerwartet auf eine andere auswirkt.

Problem:

Betrachten Sie den folgenden Python-Code:

<code class="python">v = [0, 0, 0, 0, 0, 0, 0, 0, 0]
vec = v  # Assignment by reference
vec[5] = 5</code>
Nach dem Login kopieren

Nachdem dieser Code ausgeführt wurde, Sowohl v als auch vec zeigen den geänderten Wert bei Index 5:

>>> print(vec)
[0, 0, 0, 0, 0, 5, 0, 0, 0]
>>> print(v)
[0, 0, 0, 0, 0, 5, 0, 0, 0]
Nach dem Login kopieren

Warum ändert sich v, obwohl es nicht explizit geändert wurde?

Das Problem verstehen:

Wenn Sie in Python einer neuen Variablen eine Liste zuweisen, erstellen Sie keine Kopie; Stattdessen erstellen Sie eine Referenz. Das bedeutet, dass sowohl v als auch vec auf dasselbe zugrunde liegende Listenobjekt im Speicher verweisen.

Lösung:

Um zwei separate Listen mit identischen Werten zu haben, müssen Sie eine erstellen eine Kopie mit dem list()-Konstruktor:

<code class="python">vec = list(v)  # Creates a copy</code>
Nach dem Login kopieren

Wenn Sie jetzt Änderungen an vec vornehmen, bleibt v davon unberührt.

Das obige ist der detaillierte Inhalt vonWarum wirkt sich das Ändern einer Liste in Python auf eine andere aus?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!