Listenmanipulation in Python: Wertübergabe vs. Referenz
Bei der Arbeit mit Listen in Python ist das Konzept der Übergabe eine häufige Herausforderung durch Referenz und Verständnis, wie es sich auf Listenänderungen auswirkt. Sehen wir uns ein Szenario an, um dieses Problem zu veranschaulichen:
a = ['help', 'copyright', 'credits', 'license'] b = a b.append('XYZ') print(b) # ['help', 'copyright', 'credits', 'license', 'XYZ'] print(a) # ['help', 'copyright', 'credits', 'license', 'XYZ']
In diesem Beispiel möchten Sie einen Wert an die Liste „b“ anhängen, aber überraschenderweise ändert sich auch der Wert der Liste „a“. Dies liegt daran, dass in Python Listen (und andere Objekte) als Referenz übergeben werden, was bedeutet, dass sie denselben Speicherort gemeinsam nutzen.
Wenn Sie also „a“ „b“ zuweisen, ist dies nicht der Fall Erstellen einer neuen Liste, aber Verweisen auf dieselbe. Daher werden alle an einer Liste vorgenommenen Änderungen in der anderen widergespiegelt.
So übergeben Sie Werte
Um unbeabsichtigte Änderungen zu vermeiden, müssen Sie eine neue Liste erstellen das ist eine Kopie des Originals. In Python kann Slicing verwendet werden, um dies zu erreichen:
b = a[:]
Durch die Verwendung des Slice-Operators [:] für die Liste „a“ erstellen Sie eine neue Liste „b“, die alle Elemente von „a“ enthält. belegt aber einen separaten Speicherort. Jetzt haben alle an „b“ vorgenommenen Änderungen keine Auswirkungen auf „a“.
Das obige ist der detaillierte Inhalt vonPython-Listen: Wertübergabe oder Referenz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!