Konvertieren von zwei Listen in ein Dictionary in Python

Rayven Esplanada 10 Oktober 2023
  1. Verwenden Sie zip() und dict(), um zwei Listen in Python in ein Dictionary zu konvertieren
  2. Mit Dictionary Comprehension eine Liste in ein Dictionary in Python konvertieren
  3. Verwenden Sie die for-Schleife, um in Python eine Liste in ein Dictionary umzuwandeln
Konvertieren von zwei Listen in ein Dictionary in Python

In diesem Tutorial wird gezeigt, wie man in Python zwei Listen in ein Dictionary konvertiert, wobei eine Liste die Schlüssel des Dictionaries und die andere die Werte enthält.

Verwenden Sie zip() und dict(), um zwei Listen in Python in ein Dictionary zu konvertieren

Python hat eine eingebaute Funktion namens zip(), die iterierbare Datentypen zu einem Tupel zusammenfasst und an den Aufrufer zurückgibt. Die Funktion dict() erzeugt aus der gegebenen Sammlung ein Dictionary.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = dict(zip(key_list, value_list))
print(dict_from_list)

In dieser Lösung ist die Umwandlung von Listen in Wörterbücher mit nur einer einzigen Zeile und zwei Funktionen möglich.

Ausgabe:

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

Mit Dictionary Comprehension eine Liste in ein Dictionary in Python konvertieren

Dictionary Comprehension ist eine Möglichkeit, die Initialisierungszeit beim Erstellen von Dictionaries in Python zu verkürzen. Comprehension ist ein Ersatz für for-Schleifen, die mehrere Zeilen und Variablen benötigen. Comprehension erledigt die Aufgabe der Initialisierung in einer einzigen Zeile.

In dieser Lösung wird die Funktion zip() weiterhin Werte in das Dictionary Comprehension liefern. Das Comprehensions wird ein Schlüssel-Wert-Paar jedes aufeinanderfolgenden Elements innerhalb des Rückgabewerts der Funktion zip() als Dictionary zurückgeben.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {k: v for k, v in zip(key_list, value_list)}
print(dict_from_list)

Eine andere Möglichkeit, Listen in ein Dictionary zu konvertieren, besteht darin, die Indizes der Listen zu verwenden und mit der Funktion range() über beide Listen zu iterieren und mit comprehension ein Dictionary daraus zu erstellen.

Dabei wird davon ausgegangen, dass die Länge der Schlüsselliste und der Werteliste gleich ist. In diesem Beispiel wird die Länge der Schlüsselliste die Basis für den Bereich sein.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {key_list[i]: value_list[i] for i in range(len(key_list))}
print(dict_from_list)

Beide Lösungen für das Verstehen liefern die gleiche Ausgabe wie im vorherigen Beispiel.

Der einzige Unterschied zwischen diesen beiden Lösungen ist, dass die eine die Funktion zip() verwendet, um die Liste in ein Tupel zu konvertieren. Die andere verwendet die Funktion range(), um beide Listen unter Verwendung des aktuellen Index zu iterieren und ein Dictionary zu bilden.

Ausgabe:

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

Verwenden Sie die for-Schleife, um in Python eine Liste in ein Dictionary umzuwandeln

Der einfachste Weg, eine Liste in ein Dictionary umzuwandeln, ist eine Schleife. Obwohl diese Methode die ineffizienteste und langwierigste ist, ist sie ein guter Anfang, besonders wenn Sie Anfänger sind und mehr über die grundlegende Programmiersyntax verstehen wollen.

Initialisieren Sie vor der Schleifenbildung ein leeres Dictionary. Danach fahren Sie mit der Konvertierung fort, die eine verschachtelte Schleife erfordert; die äußere Schleife iteriert die Schlüsselliste, während die innere Schleife die Werteliste iteriert.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {}
for key in key_list:
    for value in value_list:
        dict_from_list[key] = value
        value_list.remove(value)
        break

print(dict_from_list)

Jedes Mal, wenn ein Schlüssel-Wert-Paar gebildet wird, wird das Wertelement aus der Liste entfernt, damit dem nächsten Schlüssel der nächste Wert zugewiesen wird. Nach dem Entfernen wird die innere Schleife unterbrochen, um mit dem nächsten Schlüssel fortzufahren.

Eine andere Lösung mit einer Schleife ist die Verwendung von range(), um den Index zu verwenden, um die Schlüssel-Wert-Paare zu erhalten, genau wie im Beispiel mit dem Dictionaryverständnis.

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {}
for i in range(len(key_list)):
    dict_from_list[key_list[i]] = value_list[i]

print(dict_from_list)

Beide Lösungen erzeugen die gleiche Ausgabe:

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

Zusammenfassend lässt sich sagen, dass der effizienteste Weg, zwei Listen in ein Dictionary zu konvertieren, darin besteht, die eingebaute Funktion zip() zu verwenden, um die beiden Listen in ein Tupel zu konvertieren, und dann das Tupel mit dict() in ein Dictionary zu konvertieren.

Mit dem Dictionaryverständnis können Sie auch Listen in ein Dictionary konvertieren, indem Sie entweder zip() verwenden, um die Listen in ein Tupel zu konvertieren, oder range() und den Index der Listen verwenden, um zu iterieren und ein Dictionary zu initialisieren.

Diese beiden Lösungen sind besser als die naive Lösung, die einfache Schleifen verwendet, um die Listen in ein Dictionary zu konvertieren.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Verwandter Artikel - Python List

Verwandter Artikel - Python Dictionary