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.