Wörterbuchinitialisierung mit leeren Listen in Python
In Python kann die Erstellung eines Wörterbuchs mit leeren Listen durch verschiedene Ansätze erreicht werden. Allerdings führt die fromkeys-Methode möglicherweise nicht zum gewünschten Ergebnis, da sie ein einzelnes Listenobjekt erstellt, auf das alle Wörterbuchschlüssel verweisen.
Betrachten Sie das folgende Beispiel:
data = {} data = data.fromkeys(range(2), []) data[1].append('hello') print(data)
Erwartetes Ergebnis: {0: [], 1: ['hello']}
Tatsächliches Ergebnis: {0: ['hello'], 1: ['hello']🎜>
Ursache:
Bei Verwendung von fromkeys wird das zweite Argument ([]) als einzelnes Listenobjekt behandelt, auf das alle verweisen Schlüssel im resultierenden Wörterbuch. Alle Änderungen an einem Schlüssel werden auf alle anderen übertragen.Lösung:
Um ein Wörterbuch unabhängiger leerer Listen zu erstellen, verwenden Sie ein Diktatverständnis:In Python 2.7 oder höher:data = {k: [] for k in range(2)}
data = dict([(k, []) for k in range(2)])
data = dict((k, []) for k in range(2))
Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein Wörterbuch mit leeren Listen in Python richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!