Warum müssen die Schlüssel in einem Python-Wörterbuch unveränderlich sein und können veränderliche Schlüssel verwendet werden?
sobes.tech KI
Antwort von AI
Schlüssel in einem Python-Wörterbuch müssen unveränderlich sein, da das Wörterbuch Hashing verwendet, um schnell auf Werte zuzugreifen. Wenn der Schlüssel veränderlich ist, kann sich sein Hash nach dem Einfügen in das Wörterbuch ändern, was dazu führt, dass dieser Schlüssel und entsprechend der Wert nicht gefunden werden können.
Zum Beispiel sind Strings, Zahlen und Tupel (bestehend aus unveränderlichen Elementen) geeignete Schlüssel, da ihr Hash unverändert bleibt.
Veränderliche Schlüssel (wie Listen oder Wörterbücher) dürfen nicht verwendet werden, da sie keinen konstanten Hash haben und die Methode hash() nicht unterstützen. Der Versuch, ein veränderliches Objekt als Schlüssel zu verwenden, führt zu einem TypeError.
Beispiel:
my_dict = {}
my_dict[[1, 2, 3]] = "value" # TypeError: unhashable type: 'list'
Daher garantiert die Unveränderlichkeit der Schlüssel die korrekte Funktion der Hash-Tabelle des Wörterbuchs.