Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine Python-Liste alternierender Schlüssel und Werte effizient in ein Wörterbuch konvertieren?
Konvertieren von [key1,val1,key2,val2]-Listen in Wörterbücher in Python
In Python stößt man häufig auf Listen, in denen jede Ein Elementpaar wird einem Schlüssel-Wert-Paar in einem Wörterbuch zugeordnet. Um solche Listen in Wörterbücher umzuwandeln, besteht der syntaktisch eleganteste Ansatz darin, die integrierte zip()-Funktion in Verbindung mit der Wörterbuchkonstruktion zu verwenden.
Zum Beispiel eine Liste a mit abwechselnden Schlüsseln und Werten:
a = ['hello','world','1','2']
Wir können effizient ein Wörterbuch b erstellen, in dem jeder Schlüssel von a seinem entsprechenden Wert wie folgt zugeordnet wird:
b = dict(zip(a[::2], a[1::2]))
Hier ist a[::2] extrahiert die geraden Elemente, die Schlüssel darstellen, und a[1::2] extrahiert die ungeraden Elemente, die Werte darstellen. Der dict()-Konstruktor kombiniert diese Listen dann in einem Wörterbuch.
Für größere Listen besteht eine speichereffiziente Alternative darin, die Funktion itertools.izip() zu nutzen, die die Elemente aus a iterativ paarweise konsumiert:
from itertools import izip i = iter(a) b = dict(izip(i, i))
In Python 3 kann ein ähnliches Ergebnis erzielt werden, indem ein Diktatverständnis zusammen mit verwendet wird range():
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
Alternativ kann die Funktion zip() direkt verwendet werden, da sie in Python 3 faul war:
i = iter(a) b = dict(zip(i, i))
Der Kürze halber ist das „Walross“ Der Operator (:=) kann in Python 3.8 und höher verwendet werden, um eine Zuweisung in einer einzelnen Zeile durchzuführen:
b = dict(zip(i := iter(a), i))
Das obige ist der detaillierte Inhalt vonWie kann ich eine Python-Liste alternierender Schlüssel und Werte effizient in ein Wörterbuch konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!