Heim > Artikel > Backend-Entwicklung > Warum wirken sich Änderungen an einer Python-Listenkopie auf die Originalliste aus?
Python: Referenzkopie verstehen
Beim Erstellen einer Kopie einer Liste in Python kann es überraschend sein, festzustellen, dass Änderungen an der Liste vorgenommen wurden Kopieren wirkt sich auch auf die Originalliste aus. Dies liegt daran, dass Python das Kopieren von Referenzen verwendet, wodurch ein Verweis auf die ursprüngliche Liste anstelle einer separaten Instanz erstellt wird.
Zur Veranschaulichung betrachten wir den folgenden Code:
org_list = ['y', 'c', 'gdp', 'cap'] copy_list = org_list copy_list.append('hum') print(copy_list) print(org_list)
Dieser Code wird ausgegeben :
['y', 'c', 'gdp', 'cap', 'hum'] ['y', 'c', 'gdp', 'cap', 'hum']
Wie wir sehen können, wird die ursprüngliche Liste org_list nach dem Anhängevorgang copy_list geändert. Dies liegt daran, dass copy_list keine separate Instanz, sondern vielmehr ein Verweis auf org_list ist.
Um eine unabhängige Kopie der Originalliste zu erstellen, können wir den Slicing-Operator verwenden:
copy_list = org_list[:]
Dadurch wird erstellt eine neue Liste, die eine Kopie von org_list ist. Änderungen an copy_list wirken sich nicht mehr auf org_list aus. Dieser Ansatz kann auch zum Kopieren anderer Variablentypen verwendet werden, z. B. Pandas DataFrames.
Das obige ist der detaillierte Inhalt vonWarum wirken sich Änderungen an einer Python-Listenkopie auf die Originalliste aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!