Programmieren für Ingenieure

Dictionary

In dieser Lektion wirst du lernen wie du mit Dictionaries in Python arbeiten kannst.

Ein Dictionary besteht aus einer Sammlung von Einträgen, die wiederum jeweils aus einem Schlüsselwort und einem Wert bestehen.
Es hat also durchaus Ähnlichkeiten zu einem 1 zu1 ins Deutsche übersetzten Wörterbuch.
Neben Dictionary ist diese Datenstruktur auch als Hashmap oder Hashtable bekannt.

Dictionaries in Python haben den Datentyp „dict“ und du erkennst sie an der Syntax mit geschweiften Klammern {}.

dictionaryLeer = {}
print(dictionaryLeer)
print(type(dictionaryLeer))

### ERGEBNIS / AUSGABE ###
{}
<class ‚dict‘>


Ein nicht leeres Dictionary verwendet immer die folgende Syntax:
{Schlüsselwort1: Wert1, Schlüsselwort2: Wert2, …}
Die Schlüsselwörter werden als keys und die Werte als values bezeichnet.

mitarbeiter = {1: [„Felix“, „1988-09-21“, 90000], 2: [„Mareike“, „1992-11-24“, 59000]}
print(mitarbeiter)
print(mitarbeiter.keys())
print(mitarbeiter.values())

### ERGEBNIS / AUSGABE ###
{1: [‚Felix‘, ‚1988-09-21‘, 90000], 2: [‚Mareike‘, ‚1992-11-24‘, 59000]}
dict_keys([1, 2])
dict_values([[‚Felix‘, ‚1988-09-21‘, 90000], [‚Mareike‘, ‚1992-11-24‘, 59000]])


Zum Arbeiten mit Dictionaries gibt es eine ganze Reihe an Funktionen.
Und auch hier möchte ich dir davon abraten, dir die Mühe zu machen alle Funktionen auswendig zu lernen.
Es ist vor allem wichtig, dass du weißt welche Funktionalitäten existieren und wie sie funktionieren, die genaue Syntax kannst du jederzeit wieder nachschauen oder googlen.

Zuerst möchte ich dir zeigen, wie du neue Elemente zu deinem Dictionary hinzufügen kannst.

mitarbeiter[3] = [„Olivia“, „1988-03-19“, 45000]
print(mitarbeiter)

### ERGEBNIS / AUSGABE ###
{1: [‚Felix‘, ‚1988-09-21‘, 90000], 2: [‚Mareike‘, ‚1992-11-24‘, 59000], 3: [‚Olivia‘, ‚1988-03-19‘, 45000]}


Mit Hilfe von Slicing, wie du es auch bereits bei Listen kennengelernt hast, kannst du bestehende Werte auslesen und verändern.

mitarbeiter[3][2] = 52000 # Herzlichen Glückwunsch zur Gehaltserhöhung
print(mitarbeiter)

### ERGEBNIS / AUSGABE ###
{1: [‚Felix‘, ‚1988-09-21‘, 90000], 2: [‚Mareike‘, ‚1992-11-24‘, 59000], 3: [‚Olivia‘, ‚1988-03-19‘, 52000]}


Falls das Schlüsselwort oder der Wert, den du referenzierst, nicht existiert, würdest du mit der Slicing Methode eine Fehlermeldung erhalten.
Deshalb ist es empfehlenswert die .get() Methode zu nutzen, welche dir im Fehlerfall None zurückliefert.

print(mitarbeiter.get(3))
print(mitarbeiter[3]) # gibt Fehlermeldung zurück wenn Schlüsselwort nicht gefunden wurde
print(mitarbeiter.get(5)) # .get() Funktion gibt None zurück wenn Schlüsselwort nicht gefunden wurde

### ERGEBNIS / AUSGABE ###
[‚Olivia‘, ‚1988-03-19‘, 52000]
[‚Olivia‘, ‚1988-03-19‘, 52000]
None


Ebenso interessant ist es natürlich, auch Elemente aus deinem Dictionary entfernen zu können.

del mitarbeiter[1]
print(mitarbeiter)

### ERGEBNIS / AUSGABE ###
{2: [‚Mareike‘, ‚1992-11-24‘, 59000], 3: [‚Olivia‘, ‚1988-03-19‘, 52000]}


Wenn du prüfen möchtest, ob dein Dictionary einen bestimmten Wert enthält, kannst du dafür das „in“ Schlüsselwort nutzen.

print(1 in mitarbeiter)
print(3 in mitarbeiter)

### ERGEBNIS / AUSGABE ###
False
True


Um jedes einzelne Element deines Dictionary mit dem jeweiligen Schlüsselwort und Wert zu durchlaufen, kannst du eine for Schleife und die .items() Funktion nutzen.

for schluesselwort, wert in mitarbeiter.items():
print(f“Schlüsselwort: {schluesselwort} – Wert: {wert}“)

### ERGEBNIS / AUSGABE ###
Schlüsselwort: 2 – Wert: [‚Mareike‘, ‚1992-11-24‘, 59000]
Schlüsselwort: 3 – Wert: [‚Olivia‘, ‚1988-03-19‘, 52000]


Dictionaries sind, genauso wie Listen, eine sehr wichtige und häufig genutzte Datenstruktur in Python, deshalb zögere bitte nicht mich zu fragen falls du in dieser Lektion Probleme hattest oder etwas unklar ist.

Wann genau du ein Dictionary und wann lieber eine Liste verwenden solltest, schauen wir uns in der Lektion zur Code Optimierung an.

Wenn du verstanden hast, was Dictionaries sind und die wichtigsten Funktionalitäten am besten kurz selber ausprobiert hast, dann möchte ich dir an dieser Stelle herzlich zum nächsten Erfolgreichen Schritt gratulieren und freue mich schon sehr darauf dich gleich in der nächsten Lektion wiederzusehen =)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.