Heim > Backend-Entwicklung > Python-Tutorial > Python-Listen: Wertübergabe oder Referenz?

Python-Listen: Wertübergabe oder Referenz?

Patricia Arquette
Freigeben: 2024-11-27 18:34:12
Original
1002 Leute haben es durchsucht

Python Lists: Pass by Value or Reference?

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

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[:]
Nach dem Login kopieren

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!

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