Dictionaries enthalten – Schlüssel-Wert-Paar haben nützliche Eigenschaften. Es gibt sie in allen Sprachen, manchmal unter anderer Bezeichnung. Lerne Dictionaries in Python und die wichtigsten Operationen auf Dictionaries kennen.
Beispiel eines Dictionaries in Python
urlaubsziele = {'Patrick':'Karibik','Lena':'Nordkap'} print (f'Lena hat folgendes Urlaubsziel: {urlaubsziele["Lena"]}.')
Probiere gleich aus: Öffne den Playground und kopiere den Code in das Eingabefeld, das du dort oben links findest.
Lies hier weiter, um zu verstehen, was da passiert.
Die wichtigsten Eigenschaften von Dictionaries
Zeile1
Das Dictionary urlaubsziele
wird definiert. Die Elemente eines Dictionaries werden mit geschweiften Klammern {} umschlossen.
Die Elemente werden durch Kommas getrennt.
Ein Element besteht aus einem Schlüssel-Wert-Paar. Schlüssel und Wert werden durch ein Doppelpunkt :
getrennt.
Beachte: Statt von Schlüssel und Wert ist oft die Rede von Key und Value.
Zeile 2
Mit urlaubsziele["Lena"]
wird auf denjenigen Wert im Dictionary zugegriffen, der mit dem Schlüssel "Lena"
eindeutig identifiziert wird.
Beachte: In diesem Statement sind die beiden Arten Anführungszeichen besonders praktisch. Das einfache Anführungszeichen wird im f-String benötigt. Das doppelte Anführungszeichen wird eingesetzt, um den Wert des Keys anzugeben – hier die Konstante "Lena"
.
Wichtige Operationen auf Dictionaries
Schlüssel und Werte abrufen
print(urlaubsziele.keys()) print(urlaubsziele.values())
Ausgabe:
dict_keys(['Patrick', 'Lena']) dict_values(['Karibik', 'Nordkap'])
Iterieren
Eine schönere Ausgabe wird durch eine Iteration erzielt. Wir können über die Schlüssel und die Werte und auch über die Einträge iterieren. Das geht so:
for name in urlaubsziele.keys(): print(name) for name in urlaubsziele.values(): print(name) for name in urlaubsziele.items(): print(name)
Ausgabe:
Patrick Lena Karibik Nordkap ('Patrick', 'Karibik') ('Lena', 'Nordkap')
Die Einträge (Items) werden als Tupel (resp. Paare) ausgegeben. Wir können auch auf die einzelnen Elemente eines Tupels zugreifen. Das erste Element hat dabei den Index 0.
for name in urlaubsziele.items(): print(name[0])
Einträge einfügen und verändern
urlaubsziele['Karin'] = 'Karibik' urlaubsziele['Karin'] = 'Alpen' print(urlaubsziele)
Ausgabe
{'Patrick': 'Karibik', 'Lena': 'Nordkap', 'Karin': 'Alpen'}
- Mit dem ersten Befehl
urlaubsziele['Karin'] = 'Karibik'
wird ein neues Schlüssel-Wert-Paar eingefügt. - Mit dem zweiten Befehl
urlaubsziele['Karin'] = 'Alpen'
wird der Wert des Schlüssels ‘Karin’ verändert. Das ist der Grund, warum nur der zweite Eintrag für Karin vorhanden ist.
In Dictionaries sind Schlüssel eindeutig.
wert = urlaubsziele.pop('Patrick') print(wert)
Mit der Methode pop wird ein vorhandener Schlüssel mitsamt seinem Wert gelöscht. Praktischerweise können wir den Wert dabei noch in einer Variablen abholen und, falls nötig, damit weiterarbeiten.
Beachte: Der Wert muss vorhanden sein, sonst wird ein Fehler geworfen. Diese Fehler stören den Programmablauf und müssen behandelt werden. Das geht so:
try: wert = urlaubsziele.pop('Patrick') print(wert) except: print('Der Schlüssel exisitert nicht')
try
undexcept
gehören zusammen.- Python erwartet die Doppelpunkte.
- Wir müssen wie üblich einrücken, um die Blöcke zu kennzeichnen.
- In den Rumpf des
try
-Blocks schreiben wir die Befehle, die logisch zu demjenigen Befehl gehören, der einen Fehler verursachen könnte. - In den Rumpf des
except
-Blocks schreiben wir eine sinnvolle Fehlerbehandlung. Hier wird einfach eine Fehlermeldung ausgegeben.
Hinweis: Ganz korrekt wäre es zu schreiben: except KeyError:
Durch Angabe des Fehlers hier KeyError
können wir für die Fehlerbehandlung verschiedene Fehlerursachen unterscheiden.
Dictionary kopieren
x = urlaubsziele.copy()
Mit der Methode copy
erstellen wir eine Kopie des Dictionaries. x
hat exakt dieselben Einträge wie urlaubsziele
. Veränderungen an einem der beiden Dictionaries werden nicht ins andere Dictionary übernommen.
Dictionary leeren
urlaubsziele.clear()
Die Methode clear
entfernt sämtliche Einträge aus dem Dictionary.
Python Dictionaries – einfache Übungen
Wende die Theorie praktisch an und vertiefe dein Verständnis
Entwickle die Lösungen der Challenges im Playground und vergleiche deine Lösung mit den Beispiellösungen.
Challenge
Erstelle eine Tabelle kalorien wie folgt:
Apfel | 100 |
Birne | 120 |
Bier | 500 |
Brot | 400 |
Challenge
Schreibe danach ein Programm, das mit Hilfe der Kalorientabelle herausfindet, welche Nahrungsmittel weniger Kalorien haben, als der Wert in der Variablen maximum
. Teste mit maximum = 200
.
Challenge
Zähle die Kalorien in der Tabelle zusammen. Gib den folgenden Taxt aus:
In der Tabelle sind xxx Kalorien enthalten.
Ersetze dabei xxx durch das Ergebnis der Berechnung.
Challenge
Bilde die Summe aller Kalorien in der Tabelle, von Nahrungsmitteln, die weniger als 200 Kalorien haben. Gib den folgenden Text aus:
In der Tabelle sind insgesamt xxxx Kalorien von Lebensmitteln, die jeweils weniger als 200 Kalorien enthalten.
Ersetze dabei xxx durch das Ergebnis der Berechnung.
Challenge
Gib die Bezeichnungen aller Lebensmittel aus, die weniger als 200 Kalorien haben.
Zähle, wie viele es sind und gib den Text aus:
Es sind xxx Einträge mit weniger als 200 Kalorien vorhanden
Ersetze dabei xxx durch das Ergebnis der Berechnung.