Heim > Backend-Entwicklung > Python-Tutorial > Warum wirkt sich das Ändern einer als Parameter in einer Funktion übergebenen Liste nicht auf die ursprüngliche Liste aus?

Warum wirkt sich das Ändern einer als Parameter in einer Funktion übergebenen Liste nicht auf die ursprüngliche Liste aus?

Patricia Arquette
Freigeben: 2024-10-27 01:12:03
Original
721 Leute haben es durchsucht

Why Does Modifying a List Passed as a Parameter in a Function Not Affect the Original List?

Ä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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage