Heim >Backend-Entwicklung >Python-Tutorial >Python-Listen: Wertübergabe oder Referenzübergabe?
Python: Übergabe von Listen nach Wert vs. Referenz
In Python ist das Verständnis der Variablenzuweisungen von entscheidender Bedeutung. Beim Zuweisen von Listen ist das Standardverhalten die Referenzübergabe, was bedeutet, dass sowohl die ursprüngliche als auch die zugewiesene Variable dasselbe zugrunde liegende Objekt im Speicher gemeinsam nutzen. Dies kann zu unerwarteten Änderungen führen, wie unten gezeigt:
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 wirkt sich das Anhängen von „XYZ“ an „b“ auch auf „a“ aus, da sie auf dasselbe Objekt im Speicher verweisen. Um dieses Verhalten zu vermeiden und eine echte Kopie der Liste zu erstellen, müssen Sie die Slicing-Zuweisung von Python verwenden:
b = a[:]
Dieser Vorgang erstellt ein neues Listenobjekt im Speicher, unabhängig von der ursprünglichen Liste. Daher wirken sich alle an „b“ vorgenommenen Änderungen nicht auf „a“ aus.
Zusammenfassend lässt sich sagen, dass das Verständnis des Python-Pass-by-Reference-Mechanismus für die Arbeit mit veränderlichen Objekten wie Listen von entscheidender Bedeutung ist. Mithilfe der Slicing-Zuweisung können Sie Kopien von Listen erstellen und sicherstellen, dass ihre Werte von späteren Änderungen unberührt bleiben.
Das obige ist der detaillierte Inhalt vonPython-Listen: Wertübergabe oder Referenzübergabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!