HOWTO · Python

Konvertieren eines Dictionaries in eine Liste in Python

Dieser Artikel stellt vor, wie man in Python ein Dictionary in eine Liste umwandelt.

Auf dieser Seite

Ein Python-Dictionary speichert Schlüssel-Wert-Paare. „Ein Dictionary in eine Liste umwandeln“ kann drei verschiedene Ergebnisse bedeuten: eine Liste mit Schlüsseln, eine mit Werten oder eine mit (key, value)-Tupeln. Wählen Sie die Form, die der nächste Arbeitsschritt benötigt, und übergeben Sie die entsprechende Dictionary-View an list(), um daraus eine Liste zu erzeugen.

Auswählen, welcher Teil eines Dictionarys umgewandelt werden soll

Verwenden Sie keys(), wenn die Liste die Schlüssel des Dictionarys enthalten soll, values() für die Werte und items() für Schlüssel-Wert-Paare. Die folgenden Beispiele verwenden durchgehend dasselbe Dictionary. Führen Sie jedes Python-Beispiel aus, um das Ergebnis in Ihrer Umgebung anzusehen.

Dictionary-Schlüssel und -Werte in Listen umwandeln

keys() und values() sind Dictionary-Methoden. In Python 3 liefern sie Views, die list() in Listen umwandelt. Die Schlüssel- und Wertelisten folgen der Iterationsreihenfolge des Dictionarys; ihre Elemente gehören positionsweise zusammen.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

keys = list(dictionary.keys())
values = list(dictionary.values())

print(type(dictionary.keys()))
print(keys)
print(values)

Mit list(dictionary) lässt sich kürzer eine Liste der Schlüssel erstellen. Verwenden Sie list(dictionary.keys()), wenn die ausdrückliche Nennung der Methode die Absicht verständlicher macht. Wenn Sie die Schlüssel oder Werte lediglich durchlaufen möchten, können Sie direkt über die View iterieren, statt eine Liste anzulegen.

Dictionary-Einträge in eine Liste von Tupeln umwandeln

Für Schlüssel-Wert-Paare rufen Sie items() auf und übergeben dessen View an list(). Jedes Element der resultierenden Liste ist ein Tupel aus zwei Elementen: zuerst der Schlüssel, dann sein Wert.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

pairs = list(dictionary.items())
print(type(dictionary.items()))
print(pairs)

Wenn Sie Paare benötigen, ist dies der direkte Weg. zip(dictionary.keys(), dictionary.values()) kann ebenfalls die beiden Sequenzen desselben Dictionarys paaren, bringt für diese Aufgabe aber keinen Vorteil. Außerdem lässt es sich leichter falsch verwenden, wenn die Eingaben aus unterschiedlichen Quellen stammen. Für gewöhnliche Dictionary-Paare ist items() die passende Wahl.

Python-3-Dictionary-Views und Reihenfolge verstehen

In Python 3 liefern keys(), values() und items() View-Objekte statt Listen. Eine View eignet sich zum Iterieren; list() erstellt eine separate Liste, wenn eine Liste benötigt wird. Die Typprüfung in den Beispielen unterscheidet eine View von der daraus erzeugten Liste.

Die Beispiele zeigen die Einträge in der Iterationsreihenfolge des jeweiligen Dictionarys; Schlüssel und Werte sind dabei aufeinander abgestimmt. Wenn Sie unabhängig davon, wie das Dictionary erstellt wurde, eine bestimmte Reihenfolge benötigen, sortieren Sie ausdrücklich – zum Beispiel die Schlüssel, bevor Sie sie verwenden. Übernehmen Sie nicht einfach die angezeigte Reihenfolge eines anderen Dictionarys, sondern legen Sie fest, welche Reihenfolge Ihre Aufgabe erfordert.

Python-2-Kompatibilität berücksichtigen

iteritems() ist eine veraltete Dictionary-Methode aus Python 2. Sie ist nicht mit dem oben gezeigten Python-3-Beispiel zu items() gleichzusetzen. Die folgende Syntax dient nur der Veranschaulichung; führen Sie sie nicht als Python-3-Code aus:

pairs = list(dictionary.iteritems()) (nur Python 2; illustrative Syntax, kein Python-3-Beispiel.)

Verwenden Sie in Python 3 list(dictionary.items()). Das bereitgestellte ältere Beispiel liefert keine verlässliche Grundlage für Aussagen zu einer bestimmten Python-2-Reihenfolge oder Typanzeige; diese Angaben werden daher weggelassen. Wenn Sie alten Python-2-Code pflegen, prüfen Sie das Verhalten im konkreten Interpreter und in der Codebasis, die Sie unterstützen, statt anzunehmen, dass sich das Python-3-Beispiel unverändert übertragen lässt.