Ändern einer Liste innerhalb einer Funktion
Beim Arbeiten mit Listenparametern in Funktionen verweisen die an die Funktion übergebenen Referenzen auf die ursprüngliche Liste. Alle Änderungen, die innerhalb der Funktion an der Variable list_arg vorgenommen werden, sind auf ihren lokalen Bereich beschränkt und wirken sich nicht auf die ursprüngliche Liste aus.
Um dieses Problem zu umgehen und die ursprüngliche Liste zu ändern, müssen der Liste Elemente direkt zugewiesen werden anstatt die gesamte Liste einem neuen Wert zuzuweisen. Hier ist ein Beispiel:
def function1(list_arg): a = function2() # function2 returns an array of numbers list_arg[:] = list(a) list1 = [0] * 5 function1(list1) print(list1) # [1, 2, 3, 4, 5]
In diesem modifizierten Code verwenden wir die Slice-Notation list_arg[:], um die Elemente von list(a) der ursprünglichen Liste zuzuweisen und so die Liste effektiv zu ändern.
Es ist wichtig zu beachten, dass direkte Änderungen zwar praktisch erscheinen, aber schwer verständlich sein können und bei Entwicklern, die den Code pflegen, zu Verwirrung führen können. Aus Gründen der Klarheit und Lesbarkeit werden im Allgemeinen explizite Neuzuweisungen bevorzugt.
Das obige ist der detaillierte Inhalt vonWie ändere ich eine Liste innerhalb einer Funktion in Python: Referenzübergabe oder direkte Änderung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!