Sobes.tech
Middle

Welche Einschränkungen gibt es bei Schlüsseln in dict in Python?

sobes.tech KI

Antwort von AI

In Python müssen die Schlüssel in einem Wörterbuch (dict) hashbare (unveränderliche) Objekte sein. Das bedeutet, dass die Schlüssel einen unveränderlichen Zustand haben und die Methode __hash__() implementieren müssen.

Hauptbeschränkungen:

  • Schlüssel müssen unveränderliche Typen sein, z.B.: Strings (str), Zahlen (int, float), Tupel (tuple), vorausgesetzt, alle Elemente des Tupels sind ebenfalls hashbar.
  • Es dürfen keine veränderlichen Typen wie Listen (list), Mengen (set), Wörterbücher (dict) als Schlüssel verwendet werden, da sie nicht hashbar sind.

Beispiel:

valid_dict = {
    "key": 1,
    42: "value",
    (1, 2): "tuple key"
}

invalid_dict = {
    [1, 2]: "list as key"  # löst einen TypeError aus
}

Wenn man versucht, ein veränderliches Objekt als Schlüssel zu verwenden, gibt Python den Fehler TypeError: unhashable type aus.