Sobes.tech
Middle

Proč musí být klíče v slovníku Python neměnné a lze použít měnitelné klíče?

sobes.tech AI

Odpověď od AI

Klíče ve slovníku Python musí být neměnné, protože slovník používá hashování pro rychlý přístup k hodnotám. Pokud je klíč měnitelný, jeho hash se může po vložení do slovníku změnit, což znemožní najít tento klíč a odpovídající hodnotu.

Například řetězce, čísla a n-tice (složeny z neměnných prvků) jsou vhodné klíče, protože jejich hash je neměnný.

Měnitelné klíče (například seznamy nebo slovníky) nelze použít, protože nemají stálý hash a nepodporují metodu hash(). Pokus o použití měnitelného objektu jako klíče způsobí chybu TypeError.

Příklad:

my_dict = {}
my_dict[[1, 2, 3]] = "value"  # TypeError: unhashable type: 'list'

Tímto způsobem zajišťuje neměnnost klíčů správnou funkci hashovací tabulky slovníku.