Middle
Prečo musia byť kľúče v slovníku Python nemenné a či je možné použiť meniteľné kľúče?
sobes.tech AI
Odpoveď od AI
Kľúče v slovníku Python musia byť nezmeniteľné, pretože slovník používa hashovanie na rýchly prístup k hodnotám. Ak je kľúč zmeniteľný, jeho hash sa môže po vložení do slovníka zmeniť, čo znemožní nájsť tento kľúč a tým aj jeho hodnotu.
Napríklad reťazce, čísla a n-tice (zložené z nezmeniteľných prvkov) sú vhodné kľúče, pretože ich hash je nemenný.
Zmeniteľné kľúče (napríklad zoznamy alebo slovníky) nie je možné použiť, pretože nemajú stály hash a nepodporujú metódu hash(). Pokus o použitie zmeniteľného objektu ako kľúča spôsobí chybu TypeError.
Príklad:
my_dict = {}
my_dict[[1, 2, 3]] = "value" # TypeError: unhashable type: 'list'
Týmto spôsobom zaručuje nemennosť kľúčov správnu funkciu hash tabuľky slovníka.