Python Tutorial
- jetzt Python programmieren lernen

Datentyp Dictionary – Wörterbücher in Python

Der Datentyp Dictionary (auf Deutsch „Wörterbuch“ bzw. assoziative Liste) ermöglicht ein Aufbau ähnlich einer Liste aber als Indizes anstelle von Zahlen dann „Text“. Der Begriff Dictionary ist wirklich mit dem dafür deutschen Wort „Wörterbuch“ am besten verständlich. Über den Datentyp Dictionary können wir also in Python eine Zuordnungstabelle (in anderen Sprachen „assoziatives Array“) aufbauen und nutzen. Durch die folgenden Beispiele wird es schnell verständlich.

Schauen wir uns den Aufbau anhand einer deutsch-englisch Wörterbuches an.

Wir wollen Zahlen in beiden Sprachen erhalten:

null = zero
eins = one
zwei = two
drei = three

Als Dictionary wird in Python im ersten Schritt ein leeres „Wörterbuch“ erstellt – dies ist an den geschweiften Klammern zu sehen. Wir nennen es „deutschenglisch“:

deutschenglisch = {}

Jetzt füllen wir das Dictionary mit Inhalt:

deutschenglisch = {}
deutschenglisch['null'] = 'zero'
deutschenglisch['eins'] = 'one'
deutschenglisch['zwei'] = 'two'
deutschenglisch['drei'] = 'three'

Und wie üblich können wir den Inhalt ausgeben über

deutschenglisch

Als Rückmeldung erhalten wir den kompletten Inhalt des Dictionary

>>> deutschenglisch

{'null': 'zero', 'eins': 'one', 'zwei': 'two', 'drei': 'three'}

Diese folgende Variante ist auch eine andere Möglichkeit, ein „Dictionary“ aufzubauen:

deutschitalienisch = {'eins': 'uno', 'zwei': 'due', 'drei': 'tre'}

Wollen wir ein bestimmtes Element der assoziativen Liste erhalten, geben wir das gewünschte einfach mit dem „Klartext-Index“ an.

>>> deutschenglisch['zwei']
'two'

Löschen von Elementen - Aktion auf das dictionary

Wollen wir ein Element, sprich Schlüssel-Wert Paar aus unserem Wörterbuch löschen, können wir dies direkt mit der Anweisung del und dem entsprechenden Index tun:

del deutschenglisch['zwei']

Nun fehlt dieses Element in unserem dictionary

>>> deutschenglisch

{'null': 'zero', 'eins': 'one', 'drei': 'three'}

Aber Vorsicht mit del!

Wird kein Index (Schlüssel-Wert Paar) angegeben, wird das komplette dictionary gelöscht!

del deutschenglisch

Das kann also ins Auge gehen:

>>> del deutschenglisch

>>> deutschenglisch

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'deutschenglisch' is not defined

Dictionary Methoden – Python stellt verschiedene Methoden bereit

>>> dir(dict)
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

values()

Über die Methode values() werden alle Werte des dictionary zurückgeliefert. Aus unserem vorherigen Wörterbuchbeispiel wäre das dann:

deutschitalienisch.values()

Ergebnis:

>>> deutschitalienisch.values()

dict_values(['uno', 'due', 'tre'])

keys()

Über die Methode keys() werden alle Schlüssel des dictionary zurückgeliefert. Aus unserem vorherigen Wörterbuchbeispiel wäre das dann:

deutschitalienisch.keys()

Als Ergebnis dann:

>>> deutschitalienisch.keys()

dict_keys(['eins', 'zwei', 'drei'])

items()

Über die Methode items() werden alle Elemente des dictionary zurückgeliefert. Aus unserem vorherigen Wörterbuchbeispiel wäre das dann:

deutschitalienisch.items()

Ergebnis:

>>> deutschitalienisch.items()

dict_items([('eins', 'uno'), ('zwei', 'due'), ('drei', 'tre')])

Die Feinheiten der Rückgabe:

  • eckige Klammern zeigen, dass es sich um eine Liste handelt
  • runde Klammern zeigen, dass es sich um Tupel handelt

clear()

Alle Elemente werden aus dem dictionary gelöscht. Im Unterschied zum vorher gezeigten del besteht weiterhin ein dictionary mit seinem Namen, dass allerdings keinen Inhalt hat.

deutschitalienisch.clear()

copy()

Legt eine Kopie des dictonary an.

woerterbuch = deutschitalienisch.copy()

Nun steckt der Inhalt auch in dem neuen „dictionary“, dass aber diesen Inhalt so behält, auch wenn das Original verändert wird. Hier liegt der Unterschied zu einem Aliasnamen (siehe weiter unten).

>>> woerterbuch = deutschitalienisch.copy()

>>> woerterbuch

{'eins': 'uno', 'zwei': 'due', 'drei': 'tre'}

Wird mit Aliasnamen gearbeitet (und nicht mit Kopien) verändert sich der Inhalt, egal ob man mit dem Alias oder dem originalen Namen zugreift!

neuernamen = deutschitalienisch
deutschitalienisch['vier'] = 'quattro'
neuernamen['vier']

Wir erhalten als Ausgabe dann „quattro“. Die Änderungen gelten für alle Aktion, egal ob Elemente dazukommen oder entfernt werden.

Weiterempfehlen • Social Bookmarks • Vielen Dank

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Das neue E-Book zum Kurs gibt es zum Kaufen.

Sie können uns auch eine Spende über PayPal zukommen lassen.

Bestellen Sie Bücher über folgenden Link bei Amazon:
Bücher über Python

Vielen Dank für Ihre Unterstützung