Wie vermeide ich gemeinsame Listenverweise beim Initialisieren leerer Listenwörterbücher in Python?

Linda Hamilton
Freigeben: 2024-11-26 05:43:09
Original
299 Leute haben es durchsucht

How to Avoid Shared List References When Initializing Empty List Dictionaries in Python?

Initialisierung des leeren Listenwörterbuchs in Python

Der Versuch, ein Wörterbuch mit Listen mithilfe der fromkeys-Methode zu erstellen, kann zu unerwartetem Verhalten führen, bei dem alle Wörterbuchschlüssel werden aktualisiert, wenn sie an einen Schlüssel angehängt werden. Dies liegt daran, dass fromkeys ein einzelnes Listenobjekt erstellt und es als Wert für alle Schlüssel referenziert.

Um dieses Problem zu beheben, verwenden Sie ein Wörterbuchverständnis:

data = {k: [] for k in range(2)}
Nach dem Login kopieren

Dieses Verständnis erstellt eine neue Liste Objekt für jeden Schlüssel, um sicherzustellen, dass jeder Schlüssel seine eigene unabhängige Liste hat.

Alternativ können Sie in Python-Versionen vor 2.7 eine Liste verwenden Verständnis, das an den dict-Konstruktor übergeben wird:

data = dict([(k, []) for k in range(2)])
Nach dem Login kopieren

Oder in Python 2.4-2.6 kann ein Generatorausdruck an dict:

data = dict((k, []) for k in range(2))
Nach dem Login kopieren
übergeben werden

Das obige ist der detaillierte Inhalt vonWie vermeide ich gemeinsame Listenverweise beim Initialisieren leerer Listenwörterbücher in Python?. 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