Sobes.tech
Middle

Zašto ključevi u Python rečniku moraju biti nepromenljivi i da li je moguće koristiti promenljive ključeve?

sobes.tech АИ

Одговор од АИ

Ključevi u Python rečniku moraju biti nepromenljivi jer rečnik koristi heširanje za brzi pristup vrednostima. Ako je ključ promenljiv, njegov heš može da se promeni nakon što ga ubacite u rečnik, što onemogućava pronalaženje tog ključa i, shodno tome, njegove vrednosti.

Na primer, stringovi, brojevi i torke (koje se sastoje od nepromenljivih elemenata) su pogodni ključevi, jer njihov heš ostaje konstantan.

Ne može se koristiti promenljive ključeve (kao što su liste ili rečnici) jer nemaju stalni heš i ne podržavaju metodu hash(). Pokušaj korišćenja promenljivog objekta kao ključa izazvaće grešku TypeError.

Primer:

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

Tako, nepromenljivost ključeva garantuje ispravno funkcionisanje heš tabele rečnika.