Heim >Backend-Entwicklung >Python-Tutorial >Warum ändert das Ändern von „i' in einer Python-Schleife nicht die Elemente der Liste?
Listenänderung in Python-Schleifen verstehen
Wenn Sie versuchen, Elemente innerhalb einer Liste zu ändern, während Sie sie mithilfe einer Schleife durchlaufen, kann es zu einem Problem kommen Problem, bei dem die Änderungen scheinbar nicht bestehen bleiben. Dieses Verhalten ergibt sich aus der Art und Weise, wie Python innerhalb von Schleifen zugewiesene Variablen verarbeitet.
Kernproblem
Wenn Sie in Python eine Variable innerhalb einer Schleife zuweisen, die auf ein Element in a verweist list (z. B. für i in li:) ändern Sie nicht die Liste selbst, sondern erstellen einen neuen Verweis auf dieses Element. Wenn Sie also versuchen, i zu ändern, ändern Sie nicht wirklich den Wert in der Liste.
Beispiel
Bedenken Sie den folgenden Code:
li = ["spam", "eggs"] for i in li: i = "foo" print(li) # Output: ["spam", "eggs"]
Obwohl Sie i innerhalb der Schleife „foo“ zugewiesen haben, bleibt der Wert von li unverändert, da i nicht direkt auf die Elemente in li verweist, sondern eher eine Kopie von sie.
Lösungen
Um Listenelemente während einer Schleife zu ändern, haben Sie mehrere Möglichkeiten:
Das obige ist der detaillierte Inhalt vonWarum ändert das Ändern von „i' in einer Python-Schleife nicht die Elemente der Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!