Heim >Backend-Entwicklung >Python-Tutorial >Wie funktioniert die Listenzuweisung in Python und wie kann ich unerwartetes Verhalten beim Ändern verschachtelter Listen vermeiden?

Wie funktioniert die Listenzuweisung in Python und wie kann ich unerwartetes Verhalten beim Ändern verschachtelter Listen vermeiden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-29 01:10:111076Durchsuche

How Does Python's List Assignment Work, and How Can I Avoid Unexpected Behavior When Modifying Nested Lists?

Listenzuweisung in Python verstehen

In Python sind Listen veränderliche Objekte, was bedeutet, dass ihr Inhalt geändert werden kann. Wenn Sie eine Liste einer anderen Variablen zuweisen, verweisen beide Variablen auf dasselbe zugrunde liegende Listenobjekt. Dies wird als Zuweisung durch Referenz bezeichnet.

Pass-By-Reference-Problem

Dieses Verhalten kann zu unerwarteten Konsequenzen führen, wenn verschachtelte Listen geändert werden. Beispielsweise wirkt sich die Änderung eines Werts in „a“ auch auf „b“ aus, da sie dasselbe Backing-List-Objekt verwenden:

a = ['help', 'copyright', 'credits', 'license']
b = a
b.append('XYZ')
print(a)  # ['help', 'copyright', 'credits', 'license', 'XYZ']

Übergabe von Listen nach Wert

Um in Python eine Liste nach Wert zu übergeben, müssen Sie eine Kopie der Originalliste erstellen. Sie können dies mit dem Slicing-Operator tun:

b = a[:]

Dadurch wird ein neues Listenobjekt mit demselben Inhalt wie „a“ erstellt. Nun hat das Anhängen an „b“ keinen Einfluss auf „a“:

b.append('XYZ')
print(a)  # ['help', 'copyright', 'credits', 'license']
print(b)  # ['help', 'copyright', 'credits', 'license', 'XYZ']

Fazit

Das Verständnis der Listenzuweisung in Python ist entscheidend, um unbeabsichtigtes Verhalten beim Ändern verschachtelter Elemente zu vermeiden Listen. Mithilfe des Slicing-Operators können Sie Listen nach Wert übergeben und sicherstellen, dass Änderungen in einer Liste nicht auf andere übertragen werden.

Das obige ist der detaillierte Inhalt vonWie funktioniert die Listenzuweisung in Python und wie kann ich unerwartetes Verhalten beim Ändern verschachtelter Listen vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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