Beim Umgang mit Listen in Python ist es wichtig, das Konzept der Übergabe durch Referenz zu verstehen, wo Änderungen vorgenommen werden Eine Liste, auf die eine andere Variable verweist, wird in beiden Variablen widergespiegelt. Dies kann zu unerwartetem Verhalten führen, insbesondere wenn mit mehreren Verweisen auf dieselbe Liste gearbeitet wird.
Betrachten Sie das folgende Beispiel:
a = ['help', 'copyright', 'credits', 'license'] b = a b.append('XYZ') print(b) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ'] print(a) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ']
In diesem Beispiel ist b ein Verweis auf dieselbe Liste als. Wenn wir „XYZ“ an b anhängen, wird es auch an a angehängt, da beide Variablen auf dieselbe zugrunde liegende Liste verweisen. Dies wird als Referenzübergabe bezeichnet.
Um dies zu vermeiden, müssen wir die Liste stattdessen nach Wert übergeben. In Python kann dies erreicht werden, indem eine Kopie der Originalliste erstellt wird. Dafür gibt es mehrere Möglichkeiten, am häufigsten wird jedoch der Slice-Operator verwendet:
b = a[:]
Dadurch wird eine neue Liste erstellt, die eine Kopie der Elemente aus a enthält. Alle an b vorgenommenen Änderungen wirken sich nicht auf a aus und umgekehrt. Zum Beispiel:
b.append('ABC') print(b) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ', 'ABC'] print(a) # Output: ['help', 'copyright', 'credits', 'license', 'XYZ']
In diesem Fall hat das Anhängen von „ABC“ an b keine Auswirkungen auf a, da sie sich nun auf unterschiedliche Listen beziehen.
Das obige ist der detaillierte Inhalt vonWie kann ich unbeabsichtigte Listenänderungen in Python vermeiden, wenn ich Listen an Funktionen übergebe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!