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.