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
Freigeben: 2024-12-08 13:38:10
Original
1040 Leute haben es durchsucht

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']
Nach dem Login kopieren

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]))
Nach dem Login kopieren

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))
Nach dem Login kopieren

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)}
Nach dem Login kopieren

Alternativ kann die Funktion zip() direkt verwendet werden, da sie in Python 3 faul war:

i = iter(a)
b = dict(zip(i, i))
Nach dem Login kopieren

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))
Nach dem Login kopieren

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!

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