Heim > Artikel > Backend-Entwicklung > Warum wirkt sich die Änderung eines verschachtelten Listenelements in Python auf alle seine Kopien aus?
Verschachtelte Listenindizes: Interpretation des referenzbasierten Verhaltens von Python
In Python werden Listen als veränderbare, referenzbasierte Datenstrukturen behandelt. Diese Eigenschaft stellt eine potenzielle Gefahr bei der Arbeit mit verschachtelten Listen dar, wie der folgende Codeausschnitt zeigt:
<code class="python">some_list = 4 * [(4 * [0])]</code>
Durch das Erstellen einer solchen verschachtelten Liste werden vier Verweise auf dieselbe zugrunde liegende Liste erstellt. Daher wirkt sich jede an einer der Referenzen vorgenommene Änderung aufgrund ihrer gemeinsamen Natur auf alle anderen aus. Dieses Verhalten wird im bereitgestellten Code deutlich, wo die erwartete Ausgabe:
<code class="python">[0, 0, 0, 0] [0, 1, 1, 1] [0, 1, 1, 1] [0, 1, 1, 1]</code>
Konflikte mit der tatsächlichen Ausgabe:
<code class="python">[0, 1, 1, 1] [0, 1, 1, 1] [0, 1, 1, 1] [0, 1, 1, 1]</code>
Um dieses Problem zu vermeiden, wird empfohlen, eine neue Liste zu erstellen Instanz für jede Unterliste unter Verwendung eines Verständnisansatzes:
<code class="python">some_list = [(4 * [0]) for _ in range(4)]</code>
Dieser Ansatz stellt sicher, dass jede Unterliste unabhängig ist, das Problem löst und die beabsichtigte Ausgabe erzeugt.
Das obige ist der detaillierte Inhalt vonWarum wirkt sich die Änderung eines verschachtelten Listenelements in Python auf alle seine Kopien aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!