Waarom moeten de sleutels in een Python-woordenboek onveranderlijk zijn en kunnen veranderlijke sleutels worden gebruikt?
sobes.tech AI
Antwoord van AI
De sleutels in een Python-woordenboek moeten onveranderlijk zijn omdat het woordenboek hashing gebruikt voor snelle toegang tot waarden. Als de sleutel veranderlijk is, kan de hash ervan veranderen nadat deze in het woordenboek is geplaatst, waardoor het onmogelijk wordt om die sleutel en dus de waarde te vinden.
Bijvoorbeeld, strings, getallen en tuples (die uit onveranderlijke elementen bestaan) zijn geschikte sleutels omdat hun hash niet verandert.
Veranderlijke sleutels (zoals lijsten of woordenboeken) kunnen niet worden gebruikt omdat ze geen constante hash hebben en de hash() methode niet ondersteunen. Het proberen te gebruiken van een veranderlijk object als sleutel zal een TypeError veroorzaken.
Voorbeeld:
my_dict = {}
my_dict[[1, 2, 3]] = "value" # TypeError: unhashable type: 'list'
Dus, de onveranderlijkheid van sleutels garandeert de correcte werking van de hash-tabel van het woordenboek.