Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine Python-Liste alternierender Schlüssel und Werte effizient in ein Wörterbuch konvertieren?

Wie kann ich eine Python-Liste alternierender Schlüssel und Werte effizient in ein Wörterbuch konvertieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-08 13:38:101038Durchsuche

How Can I Efficiently Convert a Python List of Alternating Keys and Values into a Dictionary?

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!

Stellungnahme:
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