Sobes.tech
Middle

Miért kell azonosítóknak Python szótárban változatlannak lenniük, és lehet-e változtatható kulcsokat használni?

sobes.tech MI

Válasz az MI-től

A Python szótár kulcsainak változtathatatlannak kell lenniük, mert a szótár hash-elést használ a gyors értékhozzáféréshez. Ha a kulcs módosítható, akkor a hash értéke a beillesztés után megváltozhat, ami megakadályozza a kulcs és az ahhoz tartozó érték megtalálását.

Például a sztringek, számok és tuple-ök (amelyek változatlan elemekből állnak) megfelelő kulcsok, mivel hash értékük nem változik.

Módosítható kulcsokat (például listákat vagy szótárakat) nem lehet használni, mert ezek nem rendelkeznek állandó hash értékkel, és nem támogatják a hash() metódust. A módosítható objektumok kulcsként való használata TypeError hibát eredményez.

Példa:

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

Ezért a kulcsok változtathatatlansága biztosítja a szótár hash-táblájának helyes működését.