Listen | Python-Kurs | Funktionen |
- Zugriff auf ein Dictionary
- Literal
- Auslesen mit einer for-Schleife
- Operationen auf dem Dictionary
- Mehrere Werte für einen Schlüssel
- Übungsaufgaben
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
- Einfügen:
Ein neues Element wird eingefügt, wenn über einen bisher nicht existenten
Schlüssel ein Element zugewiesen wird.
kreis["HH"] = "Hamburg"
- Änderung:
Wird die gleiche Anweisung auf einen existenten Schlüssel gemacht, wird
das bisherige Element durch das neue Element ersetzt. Statt ''Bad Homburg''
enthält das Element nun ''Hochtaunuskreis''.
kreis["HG"] = "Hochtaunuskreis"
- Löschen: Um ein Element mit Schlüssel zu entfernen, wird die Funktion
del verwendet. Dabei erhält sie als Argument den Dictionary-Eintrag
des zu entfernenden Elements.
del kreis["FL"]
Ist das Element allerdings nicht vorhanden, führt der Löschversuch zu einer Exception. - Komplett löschen: Mit der Funktion clear() werden alle
Elemente aus dem Dictionary gelöscht.
kreis.clear()
- Prüfen:
Mit dem in, das bereits vom for bekannt ist, kann getestet werden,
ob ein Schlüssel im Dictionary existiert.
if ("HG" in kreis): print("ja")
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