Sobes.tech
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.