Ändern von Listen innerhalb von Funktionen
In der Programmierung ist es üblich, mit Listen zu arbeiten, insbesondere in Funktionen, die Daten manipulieren. Es tritt jedoch ein Problem auf, wenn versucht wird, Listen zu ändern, die als Parameter innerhalb einer Funktion übergeben werden.
Bedenken Sie den folgenden Codeausschnitt:
def function1(list_arg): a = function2() # returns an array of numbers list_arg = list(a) list1 = [0] * 5 function1(list1)
Sie können davon ausgehen, dass Liste1 nach dem Aufruf von Funktion1 geändert wird, aber es bleibt unverändert. Dies liegt daran, dass beim Zuweisen von etwas zur Variablen list_arg diese auf einen neuen Wert verweist. Die ursprüngliche Liste ist jedoch nicht betroffen.
Um dies zu umgehen, können Sie stattdessen die Elemente der ursprünglichen Liste ändern:
def function1(list_arg): a = function2() # returns an array of numbers list_arg[:] = list(a)
Mit list_arg[:] werden effektiv alle Elemente von ersetzt die Originalliste. Es ist jedoch erwähnenswert, dass direkte Änderungen wie diese verwirrend sein können und möglicherweise nicht immer der beste Ansatz sind.
Das obige ist der detaillierte Inhalt vonWarum wirkt sich das Ändern einer als Parameter in einer Funktion übergebenen Liste nicht auf die ursprüngliche Liste aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!