Der Python-Kurs: Dictionary
Willemers Informatik-Ecke
Listen Python-Kurs Funktionen

Ein Dictionary ist ein Datencontainer, in dem jedes Element einen Schlüssel und einen Datenanteil enthält.

Zugriff auf ein Dictionary

Über den Namen der Variablen und den Schlüssel kann schnell auf den Datenanteil zugegriffen werden. Syntaktisch verwendet man die aus den Listen bereits bekannten rechteckigen Klammern.
print(kreis['SL'])
Während in den Listen der Schlüssel eine lückenlos aufsteigende ganze Zahl sein muss, erlaubt ein Dictionary auch Strings.

Literal

Wenn Sie einen Wert von einem Dictionary im Programm definieren, dann verwenden Sie geschweifte Klammern. Programmierer nennen so etwas ein Literal.
kreis = {"SL":"Schleswig", "FL":"Flensburg","HG":"Bad Homburg"}
In diesem Dictionary befinden sich drei Einträge von Kreisen, die jeweils aus Schlüssel und dem Wert bestehen. Sie sehen schon: Hier dient das KfZ-Kennzeichen als Schlüssel und der Dateninhalt ist der Name der Kreisstadt.

Die Einträge sind jeweils durch ein Komma getrennt. Schlüssel und Dateninhalt sind jeweils durch einen Doppelpunkt getrennt.

kreis = {"SL":"Schleswig", "FL":"Flensburg","HG":"Bad Homburg"}
print(kreis["FL"])
Der Aufruf von print() würde in diesem Beispiel Flensburg liefern.

Auslesen mit einer for-Schleife

Um ein Dictionary komplett auszulesen, kann der Befehl for verwendet werden. Die Laufvariable, in diesem Fall i, erhält bei jedem Durchlauf den nächsten Schlüsselwert. Innerhalb der Schleife kann über den Schlüssel in der Laufvariable der jeweiliege Wert zugegriffen werden.
for i in kreis:
    print(i, kreis[i])

Operationen auf dem Dictionary

Mit der Funktion items() wird aus dem Dictionary eine Liste von Tupeln aus Schlüsseln und Wert gebildet.
kreis = {"SL":"Schleswig", "FL":"Flensburg","HG":"Bad Homburg"}
liste = kreis.items()
print(liste)
Die Ausgabe ergibt folgendes:
[('FL', 'Flensburg'), ('HG', 'Bad Homburg'), ('SL', 'Schleswig')]
Die Funktion keys() liefert eine Liste aller Schlüssel eines Dictionarys.
kreis = {"SL":"Schleswig", "FL":"Flensburg","HG":"Bad Homburg"}
liste = kreis.keys()
print(liste)
Die Ausgabe ergibt folgendes:
['FL', 'HG', 'SL']
Analog liefert die Funktion values() eine Liste der Werte.

Mehrere Werte für einen Schlüssel

Das Dictionary kann nur einen Wert pro Schlüssel haben. Allerdings kann dieser Wert natürlich auch ein Tupel, eine Liste oder selbst wieder ein Dictionary sein.

Das folgende Beispiel soll einen Artikel enthalten, der eine Artikelnummer 1234 hat. Dieser Artikel heißt "Gurke" und hat einen Preis von 12,34 Euro. Durch Einklammern der Werte entsteht ein Tupel. Wird über den Schlüssel zugegriffen, erhält man dieses Tupel. Mit weiteren eckigen Klammern kann dann auf dessen erstes und zweites Element zugegriffen werden.

>>> artikel = {1234: ("Gurke", 12.34), 1235: ("Apfel", 5.45)}
>>> artikel[1234][0]
'Gurke'
>>> artikel[1234][1]
12.34
>>> artikel[1235][0]
'Apfel'
Versuchen wir das Ganze noch einmal mit einem Dictionary statt eines Tupels. Dadurch kann über einen Schlüssel auf die Attribute des Artikels zugegriffen werden.
>>> artikel = {1234: {"bez": "Gurke", "preis": 12.34}, 1235: {"bez": "Apfel", "preis": 5.45}}
>>> artikel[1235]["preis"]
5.45

Übungsaufgaben

Hauptstädte

Erstellen Sie ein Dictionary, in dem das Land der Key und der Value die Hauptstadt des Landes ist.

Kunden

Bilden Sie Kunden nach. Als Schlüssel dient eine Kundennummer. Der Kunde soll einen Namen, eine Adresse und eine Telefonnummer haben.