Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine tabellarische Liste in Python effizient in ein Wörterbuch konvertieren?
Konvertieren tabellarischer Listen in Wörterbücher in Python
Bei der Programmierung stoßen wir häufig auf Szenarien, in denen Daten in einem tabellarischen Format organisiert sind, z Liste, in der gerade Indizes Schlüssel und ungerade Indizes entsprechende Werte darstellen. Die Aufgabe besteht darin, diese Liste in ein Wörterbuch umzuwandeln.
Lösung:
Der sauberste und effizienteste Weg, diese Konvertierung zu erreichen, ist die Verwendung der integrierten Funktionen von Python:
b = dict(zip(a[::2], a[1::2]))
Dieser Code iteriert effektiv über die Liste a und teilt sie mit dem erweiterten Slice-Operator [::2] auf, der jedes andere Element überspringt. Das Ergebnis sind zwei Listen: a[::2] enthält die Schlüssel und a[1::2] enthält die Werte. Diese Listen werden dann verwendet, um mithilfe der Funktion dict() ein Wörterbuch zu erstellen.
Für große Listen wird ein alternativer Ansatz empfohlen, um die Erstellung temporärer Listen zu vermeiden:
from itertools import izip i = iter(a) b = dict(izip(i, i))
Diese Methode verwendet die iter()-Funktion zum Erstellen eines Iterators für die Liste a. Die Funktion izip() (oder zip() in Python 3) verschachtelt die Elemente jedes Iterators und erstellt so einen neuen Iterator, der Tupel von Schlüsseln und Werten liefert. Diese Tupel werden dann an dict() übergeben, um das Wörterbuch zu erstellen.
In Python 3 ist eine weitere syntaktisch praktische Methode:
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
Dieser Code verwendet ein Wörterbuchverständnis, das über die Liste iteriert Indizes in Zweierschritten und fügt Schlüssel und Werte zu einem neuen Wörterbuch zusammen.
In Python 3.8 und höher ist das „Walross“ Der Operator (:=) bietet eine prägnante Möglichkeit, dies in einer einzigen Zeile zu schreiben:
b = dict(zip(i := iter(a), i))
Das obige ist der detaillierte Inhalt vonWie kann ich eine tabellarische Liste in Python effizient in ein Wörterbuch konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!