Die Python-Funktion dict() ist der Konstruktor des eingebauten Datentyps dict — einer veränderbaren, geordneten Hash-Map aus Schlüssel-Wert-Paaren. Mit dict() lassen sich Dictionaries auf vier Wegen erzeugen: leer, aus Keyword-Argumenten, aus einem anderen Mapping oder aus einer Iterable von Paaren. Seit Python 3.7 garantiert dict die Einfügereihenfolge der Schlüssel.

Einleitung

Ein Dictionary in Python ist eine Datenstruktur zur Zuordnung von eindeutigen Schlüsseln (Keys) zu Werten (Values). Schlüssel müssen hashable sein (typisch: Strings, Zahlen, Tupel), Werte können beliebig sein. Dictionaries werden überall im Python-Alltag eingesetzt — von Konfigurationen über JSON-Daten bis zu Caches.

dict() ist die Funktions-Form des Konstruktors. Alternativ schreibt man Dictionaries direkt mit der Literal-Syntax {}, die schneller ist, aber weniger Konstruktionswege erlaubt.

Syntax

Python Syntax
dict()                    # leeres Dictionary
dict(mapping)             # aus anderem Mapping kopieren
dict(iterable)            # aus Iterable von (key, value)-Paaren
dict(**kwargs)            # aus Keyword-Argumenten
dict(mapping, **kwargs)   # Kombiniert
Parameter
mapping

Ein anderes Dictionary oder Mapping-Objekt, dessen Inhalte kopiert werden.

iterable

Eine Iterable von Paaren (key, value) — z. B. eine Liste von Tupeln oder das Ergebnis von zip().

**kwargs

Beliebige Keyword-Argumente, die als Schlüssel-Wert-Paare übernommen werden. Schlüssel müssen gültige Python-Bezeichner sein.

Rückgabewert

Ein neues dict-Objekt mit den übergebenen Schlüssel-Wert-Paaren. Bei doppelten Schlüsseln gewinnt der zuletzt übergebene Wert.

Beispiele

Leeres Dictionary

Python Beispiel
d = dict()
print(d, type(d))
Output
{} <class 'dict'>

Aus Keyword-Argumenten

Python Beispiel
person = dict(name="Michael", alter=34, stadt="Berlin")
print(person)
Output
{'name': 'Michael', 'alter': 34, 'stadt': 'Berlin'}

Aus einer Iterable von Paaren

Python Beispiel
pairs = [("a", 1), ("b", 2), ("c", 3)]
d = dict(pairs)
print(d)
Output
{'a': 1, 'b': 2, 'c': 3}

Aus zip()

Python Beispiel
keys = ["name", "alter", "stadt"]
values = ["Michael", 34, "Berlin"]
d = dict(zip(keys, values))
print(d)
Output
{'name': 'Michael', 'alter': 34, 'stadt': 'Berlin'}

Mapping kopieren

Python Beispiel
original = {"a": 1, "b": 2}
copy = dict(original)
copy["c"] = 3
print(original)
print(copy)
Output
{'a': 1, 'b': 2}
{'a': 1, 'b': 2, 'c': 3}

Praktische Beispiele

Zwei Dictionaries mergen

Python Beispiel
defaults = {"theme": "dark", "lang": "de", "fontsize": 14}
overrides = {"theme": "light", "fontsize": 16}

# Klassisch via dict()
merged = dict(defaults, **overrides)
print(merged)

# Modern (Python 3.9+) via | Operator
merged = defaults | overrides
print(merged)
Output
{'theme': 'light', 'lang': 'de', 'fontsize': 16}
{'theme': 'light', 'lang': 'de', 'fontsize': 16}

Liste in Lookup-Map umwandeln

Python Beispiel
users = [
    {"id": 1, "name": "Michael"},
    {"id": 2, "name": "Anna"},
    {"id": 3, "name": "Tobias"},
]
by_id = {u["id"]: u for u in users}
print(by_id[2])
Output
{'id': 2, 'name': 'Anna'}

Initialisierung mit Default-Wert

Python Beispiel
# Alle Keys auf den gleichen Startwert setzen
colors = ["rot", "grün", "blau"]
counter = dict.fromkeys(colors, 0)
print(counter)

counter["rot"] += 1
counter["blau"] += 2
print(counter)
Output
{'rot': 0, 'grün': 0, 'blau': 0}
{'rot': 1, 'grün': 0, 'blau': 2}

Praktische Hinweise

  • Literal-Syntax {} ist schneller als dict() und sollte bevorzugt werden, wenn die Schlüssel zur Schreibzeit feststehen.
  • Schlüssel-Reihenfolge: Seit Python 3.7 garantiert die Spezifikation die Einfügereihenfolge.
  • Dict-Comprehensions wie {k: v for k, v in items} sind oft die idiomatische Wahl gegenüber dict() mit Generator.
  • Doppelte Schlüssel führen zu keinem Fehler — der letzte Wert gewinnt (nützlich beim Mergen).
  • Für sortierte Dictionaries siehe collections.OrderedDict, für Defaults siehe collections.defaultdict.
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht