Heim > Backend-Entwicklung > Python-Tutorial > Eine kurze Diskussion über die Änderung des Werts nach dem Anhängen des Wörterbuchs an die Liste in Python

Eine kurze Diskussion über die Änderung des Werts nach dem Anhängen des Wörterbuchs an die Liste in Python

不言
Freigeben: 2018-05-04 14:13:53
Original
2587 Leute haben es durchsucht

Dieser Artikel führt hauptsächlich eine kurze Diskussion über die Wertänderung nach dem Anhängen des Wörterbuchs an die Liste in Python ein. Jetzt kann ich ihn mit Ihnen teilen

Sehen Sie sich ein Beispiel an

d={'test':1}
d_test=d
d_test['test']=2
print d
Nach dem Login kopieren

Wenn Sie es auf der Befehlszeile üben, werden Sie feststellen, dass Sie das geändert haben ist d_test, aber d auch Änderungen folgten.

Oft ist das nicht das, was wir erwarten.

Warum?

Weil das Wörterbuch d ein Objekt ist und d_test=d das Wörterbuch nicht erneut im Speicher erstellt. Es zeigt nur auf dasselbe Objekt. Dies ist auch eine Überlegung für Python, um die Leistung zu verbessern und den Speicher zu optimieren.

Die tatsächliche Szene

d={"name":""}
l=[]
for i in xrange(5):
  d["name"]=i
  l.append(d)
print l
Nach dem Login kopieren

Schleife stimmt möglicherweise nicht mit dem gewünschten Ergebnis überein.

Auch wenn es an die Liste angehängt wird, ist das, was in der Liste gespeichert ist, immer noch ein Objekt oder die Adresse des Wörterbuchs. und nicht der tatsächliche Speicherplatz im Speicher.

Verwenden Sie die Methode .copy(). Es kann ein neues unabhängiges Wörterbuch erstellt werden

Zu diesem Zeitpunkt wurde festgestellt, dass sich der Wert von „q“ in a nicht ändert, der Wert in der Liste sich jedoch dennoch änderte

Da es sich bei der Kopie um eine flache Kopie handelt

Aber hier gibt es einen Track

d={"name":""}
l=[]
for i in xrange(5):
  test=d.copy()
  test["name"]=i
  l.append(test)
print l
Nach dem Login kopieren

Wenn Sie ihn direkt zuweisen, wird die Struktur in a nicht geändert (hauptsächlich aufgrund der append method)

Deep copy

a={'q':1,'w':[]}
b=a.copy()
b['q']=2
b['w'].append(123)
print a
print b
Nach dem Login kopieren

Verwandte Empfehlungen:

Python erstellt eine leere Liste und eine Erklärung zur Verwendung von Anhängen

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Änderung des Werts nach dem Anhängen des Wörterbuchs an die Liste in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage