Dictionaries#
Ein Dictionary ist ein weiterer Datentyp in Python, der es ermöglicht strukturierte Daten darzustellen. Übersetzt heißt Dictionary Wörterbuch. Dieser Funktion ähnlich ermöglichen Dictionaries es, Objektpaare abzubilden.
Syntax#
Die Objektpaare bestehen jeweils aus einem Key
(Schlüssel) und einem Value
(Wert).
Mit dem Schlüssel kann man auf den Wert zugreifen.
Beispiele#
# Deutsch - Englisch WÖrterbuch
woerterbuch = {'Baum': 'tree', 'Haus': 'house', 'Auto': 'car'}
print(woerterbuch)
type(woerterbuch)
{'Baum': 'tree', 'Haus': 'house', 'Auto': 'car'}
dict
woerterbuch['Haus']
'house'
# Städte und ihre Einwohner:innen
städte_einwohner = {"Berlin": 3_669_491,
"Hamburg": 1_847_253,
"München": 1_484_226,
"Köln": 1_087_863,
"Frankfurt am Main": 763_380,
"Stuttgart": 635_911,
"Düsseldorf": 621_877,
"Leipzig": 593_145,
"Dortmund": 588_250,
"Essen": 582_760,
"Bremen": 567_559,
"Dresden": 556_780,
"Hannover": 536_925,
"Nürnberg": 518_370}
städte_einwohner['Dresden']
556780
Schlüssel prüfen#
Der Zugriff auf einen nicht vorhandene Schlüssel ergibt einen KeyError:
städte_einwohner["Konstanz"]
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Cell In[5], line 1
----> 1 städte_einwohner["Konstanz"]
KeyError: 'Konstanz'
Um das zu verhindern kann mit `in` oder `not in` die Existenz eines Schlüssels in einem Dictionary überprüft werden
# in
'Konstanz' in städte_einwohner
False
if 'Konstanz' not in städte_einwohner:
print('Konstanz nicht in Dictionary')
else:
print(städte_einwohner['Konstanz'])
Konstanz nicht in Dictionary
Leeres Dictionary erstellen#
Es gib zwei Möglichkeiten ein leeres Dictionary zu erstellen:
# Leeres Dictionary
empty_dict = {}
type(empty_dict)
dict
# Leeres Dictionary
empty_dict = dict()
type(empty_dict)
dict
Hinzufügen / Überschreiben der Schlüssel-Objekt Paare#
Schlüssel-Objekt Paare können mit dem folgenden Aufruf überschrieben oder neu hinzugefügt werden:
# Definition des Wörterbuchs
woerterbuch = {}
print(woerterbuch)
# Hinzufügen eines weiteren Eintrags
woerterbuch['Tisch'] = 'table'
print(woerterbuch)
{}
{'Tisch': 'table'}
# Definition des Wörterbuchs
woerterbuch = {'Baum': 'tree', 'Haus': 'Huse', 'Auto': 'car'}
print(woerterbuch)
# Korrektur eines Eintrags
woerterbuch['Haus'] = 'house'
print(woerterbuch)
{'Baum': 'tree', 'Haus': 'Huse', 'Auto': 'car'}
{'Baum': 'tree', 'Haus': 'house', 'Auto': 'car'}
Schlüssel-Objekt Paar löschen#
Mit del <dict>[<key>]
wird der key und der zugehörige value aus dem Dictionary gelöscht.
# Definition des Wörterbuchs
woerterbuch = {'Baum': 'tree', 'Haus': 'house', 'Auto': 'car'}
print(woerterbuch)
# Löschen eines Eintrags
del woerterbuch['Baum']
print(woerterbuch)
{'Baum': 'tree', 'Haus': 'house', 'Auto': 'car'}
{'Haus': 'house', 'Auto': 'car'}
Ohne key wird das gesamte Dictionary gelöscht.
# Löschen des dictionaries
del woerterbuch
print(woerterbuch)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In [20], line 3
1 # Löschen des dictionaries
2 del woerterbuch
----> 3 print(woerterbuch)
NameError: name 'woerterbuch' is not defined
Durch Dictionaries iterieren#
Um auf alle Einträge eines Dictionaries nacheinander zuzugreifen kann durch Dictionaries iteriert werden.
städte_einwohner = {"Berlin": 3_669_491,
"Hamburg": 1_847_253,
"München": 1_484_226,
"Köln": 1_087_863,
"Frankfurt am Main": 763_380}
In Berlin wohnen 3669491 Menschen.
In Hamburg wohnen 1847253 Menschen.
In München wohnen 1484226 Menschen.
In Köln wohnen 1087863 Menschen.
In Frankfurt am Main wohnen 763380 Menschen.
# Möglichkeit 1
for stadt in städte_einwohner:
einwohner = städte_einwohner[stadt
print(f'In {stadt} wohnen {einwohner} Menschen.')
# Möglichkeit 2
for stadt, einwohner in städte_einwohner.items():
print(f'In {stadt} wohnen {einwohner} Menschen.')
In Berlin wohnen 3669491 Menschen.
In Hamburg wohnen 1847253 Menschen.
In München wohnen 1484226 Menschen.
In Köln wohnen 1087863 Menschen.
In Frankfurt am Main wohnen 763380 Menschen.
Dictionary Methoden#
Die folgenden Methoden sind für Dictionaries verfügbar:
Methode |
Beschreibung |
---|---|
.clear() |
Löscht alle Einträge des Dictionarys |
.copy() |
Erstellt eine Kopie |
.fromkeys() |
Erstellt eine Kopie aus den Schlüsseln eines Dictionary |
.get() |
Liest einen Wert zu einem übergebenen Schlüssel aus |
.items() |
Gibt alles Schlüssel und Werte aus |
.keys() |
Zeit die Schlüssel eines Dictionary an |
.pop() |
löscht den Eintrag aus dem Dictionary des übergebenen Schlüssels und liefert dessen Inhalt als Rückgabewert |
.popitem() |
Liefert einen Eintrag als Tupel zurück und löscht den Eintrag aus dem Dictionary (im Gegensatz zu pop() muss kein Schlüssel übergeben werden) |
.setdefault() |
liefert den Wert eines Eintrags aus dem Dictionary, wenn der Schlüssel vorhanden ist. Ist kein entsprechender Schlüssel vorhanden, wird ein Schlüssel mit dem Wert im Dictionary gespeichert |
.update() |
Aktualisiert einen Wert, wenn der Schlüssel vorhanden ist. Wenn noch kein entsprechender Schlüssel vorhanden ist, wird Wert und Schlüssel eingetragen |
.values() |
Liefert alle Werte des Dictionary zurück (ohne Schlüssel) |