Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich unbeabsichtigte Listenänderungen in Python vermeiden, wenn ich Listen an Funktionen übergebe?

Wie kann ich unbeabsichtigte Listenänderungen in Python vermeiden, wenn ich Listen an Funktionen übergebe?

Mary-Kate Olsen
Freigeben: 2024-12-02 01:43:10
Original
958 Leute haben es durchsucht

How Can I Avoid Unintended List Modifications in Python When Passing Lists to Functions?

Übergabe von Listen nach Wert, nicht nach Referenz

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

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

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

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!

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