Heim > Backend-Entwicklung > Python-Tutorial > Wie vermeide ich gemeinsame Listenverweise beim Erstellen eines Wörterbuchs mit leeren Listen in Python?

Wie vermeide ich gemeinsame Listenverweise beim Erstellen eines Wörterbuchs mit leeren Listen in Python?

Linda Hamilton
Freigeben: 2024-11-30 03:44:11
Original
714 Leute haben es durchsucht

How to Avoid Shared List References When Creating a Dictionary of Empty Lists in Python?

Initialisieren eines Wörterbuchs mit leeren Listen in Python

Beim Versuch, ein Wörterbuch mit Listen zu erstellen, kann es zu einem unerwarteten Problem kommen, bei dem alle Schlüssel im Wörterbuch dasselbe haben Listenreferenz. Dies tritt auf, wenn die fromkeys()-Methode verwendet und eine leere Liste als zweites Argument übergeben wird.

So verwenden Sie fromkeys() richtig

Die dict.fromkeys()-Methode benötigt zwei Argumente: a Sammlung von Schlüsseln und einem Wert. Es erstellt ein neues Wörterbuch mit den bereitgestellten Schlüsseln und jeder Schlüssel wird dem angegebenen Wert zugeordnet.

Wenn jedoch eine leere Liste [] als Wert übergeben wird, werden allen Schlüsseln im resultierenden Wörterbuch die zugewiesen dasselbe Listenobjekt. Dies bedeutet, dass sich alle Änderungen an einem Schlüssel auch auf alle anderen Schlüssel auswirken.

Alternative Lösungen

Um ein Wörterbuch mit eindeutigen Listen zu erstellen, sollten Sie eine der folgenden Methoden in Betracht ziehen:

Diktverständnis (Python 2.7 )

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

Listenverständnis mit dict()-Konstruktor

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

Generatorausdruck mit dict()-Konstruktor (Python 2.4-2.6 )

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

Diese Methoden stellen sicher dass jeder Schlüssel im Wörterbuch einem separaten Listenobjekt zugeordnet ist, was individuelle Schlüsselaktualisierungen ermöglicht, ohne andere Schlüssel zu beeinträchtigen.

Das obige ist der detaillierte Inhalt vonWie vermeide ich gemeinsame Listenverweise beim Erstellen eines Wörterbuchs mit leeren Listen 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