Menu

Python-Dictionaries: erstellen, zugreifen, aktualisieren und iterieren (dict)

Dictionaries sind Pythons Schlüssel-Wert-Struktur — der eine Datentyp, zu dem du nach den Grundlagen ständig greifst.

Ein Dictionary ist eine Nachschlagetabelle

Listen werden per Position indiziert. Dictionaries per Schlüssel — meist ein String oder eine Zahl —, und jeder Schlüssel zeigt auf einen Wert. Diese eine Verschiebung schaltet eine riesige Programmklasse frei: Inventare, Konfigurationen, JSON-Payloads, Nutzerprofile, Caches.

main.py
Output
Click Run to see the output here.

Schlüssel und Werte können fast alles sein. Schlüssel müssen hashbar sein (also: Zahlen, Strings, Tupel; keine Listen oder anderen Dicts). Werte haben keine Einschränkung — ein Dict kann alles enthalten, auch andere Dicts oder Listen.

Dictionaries erzeugen

Mehrere Wege, jeder hat seinen Platz:

main.py
Output
Click Run to see the output here.

Werte lesen

Zwei Wege, und die Wahl zählt:

main.py
Output
Click Run to see the output here.

Wähle nach Absicht:

  • Nimm [], wenn der Schlüssel da sein muss. Fehlt er, ist das ein Bug und du willst den lauten Fehler.
  • Nimm .get(), wenn „nicht vorhanden“ ein gültiger Fall ist. So schreibst du Defaults ohne try/except.

Hinzufügen, Aktualisieren, Löschen

Eine Zuweisung an einen Schlüssel erzeugt ihn entweder oder aktualisiert ihn:

main.py
Output
Click Run to see the output here.

update() führt ein anderes Dict oder eine Iterable aus Paaren zusammen:

main.py
Output
Click Run to see the output here.

Gemeinsame Schlüssel in overrides überschreiben die in settings.

Auf einen Schlüssel prüfen

in prüft die Schlüssel, nicht die Werte:

main.py
Output
Click Run to see the output here.

Willst du gezielt auf Werte prüfen, nimm user.values():

main.py
Output
Click Run to see the output here.

Wie man ein Dictionary iteriert

Du hast drei Sichten zum Durchlaufen:

main.py
Output
Click Run to see the output here.

Zu .items() greifst du meistens — es gibt dir das Paar, entpackt, einsatzbereit.

Die Iterationsreihenfolge in modernem Python (3.7+) entspricht der Einfügereihenfolge. Ein Dict ist kein „Zaubersack“ — fügst du a, dann b, dann c hinzu, liefert die Iteration sie in dieser Reihenfolge. Das ist eine Sprachgarantie, auf die du dich verlassen kannst.

Wie man ein Dictionary sortiert

Dictionaries behalten die Einfügereihenfolge bei, also bedeutet „ein Dict sortieren“ in Wirklichkeit, ein neues Dict zu bauen, dessen Schlüssel in der gewünschten Reihenfolge eingefügt sind:

main.py
Output
Click Run to see the output here.

sorted() liefert eine Liste von Paaren; diese in dict(...) zu wickeln baut ein Dictionary in der neuen Reihenfolge. Brauchst du nur die sortierten Paare (kein Dict), lass das äußere dict() weg.

Wie man zwei Dictionaries zusammenführt

Python 3.9+ gibt dir den Operator |:

main.py
Output
Click Run to see the output here.

Werte aus dem rechten Dict gewinnen bei Schlüsselkollisionen. .update() ist das In-place-Äquivalent. Auf älteren Python-Versionen: {**defaults, **overrides}.

Das setdefault-Muster

Ein häufiger Bedarf: „wenn der Schlüssel da ist, nutz seinen Wert; wenn nicht, setz einen Default und nutz den“.

main.py
Output
Click Run to see the output here.

Oder, besser, nimm collections.Counter:

main.py
Output
Click Run to see the output here.

Counter ist eine Dict-Unterklasse, die standardmäßig zählt. Sie ist die richtige Wahl, sobald du Vorkommen zählst.

Dict-Comprehensions

Parallel zu List Comprehensions, aber um Dicts zu bauen:

main.py
Output
Click Run to see the output here.

Dieselben Regeln wie bei List Comprehensions, nur mit key: value zwischen den Klammern.

Dict als JSON-Zwilling

Python-Dicts entsprechen fast exakt JSON-Objekten. Die Umwandlung ist ein einziger Aufruf:

main.py
Output
Click Run to see the output here.

Deshalb tauchen Dicts in der Web-Entwicklung überall auf — deine API-Anfragen und -Antworten sind im Grunde Dict-Manipulation mit etwas Netzwerk dazwischen.

Ein praktisches Beispiel

Ein kleines konfigurationsartiges Programm, das ein Nutzerprofil verwaltet:

main.py
Output
Click Run to see the output here.

Verschachtelte Dicts, veränderbare Werte, .get() mit Default — das Basis-Werkzeugset für alle datensatzförmigen Daten.

Weiter

Listen, Tupel, Sets, Dicts. Mit diesen vier Sammlungen im Gepäck kannst du fast jede Datenstruktur modellieren, der du am Anfang begegnest. Als Nächstes lernen wir die List Comprehension — Pythons kompakte Art, eine Sammlung in eine andere zu transformieren.

Häufig gestellte Fragen

Was ist ein Dictionary in Python?

Ein Dictionary ist eine Sammlung von Schlüssel-Wert-Paaren. Du schlägst einen Wert per Schlüssel nach — prices['apple'] statt prices[0]. Dictionaries sind schnell zu lesen und zu schreiben, Schlüssel müssen eindeutig sein, und in modernem Python behalten sie die Einfügereihenfolge.

Wie füge ich einem Python-Dictionary einen Schlüssel hinzu?

Weis ihm zu: my_dict['new_key'] = 'new value'. Existiert der Schlüssel schon, wird der Wert überschrieben. Wenn nicht, wird er hinzugefügt. Es gibt keinen Unterschied zwischen „Einfügen“ und „Aktualisieren“ — es ist dieselbe Syntax.

Was ist der Unterschied zwischen dict[key] und dict.get(key)?

dict[key] wirft KeyError, wenn der Schlüssel fehlt. dict.get(key) liefert stattdessen None (oder einen Default, den du angibst). Nimm .get(), wenn fehlende Schlüssel erwartet und normal sind; nimm [key], wenn ein fehlender Schlüssel ein Bug ist.

Lerne mit Coddy zu programmieren

LOS GEHT'S