Dictionary Python

Python Dictionaries

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

Beispielcode Python Dictionary

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 und except 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.