Middle
Kodėl Python žodyno raktai turi būti nekintami ir ar galima naudoti keičiamus raktus?
sobes.tech AI
Atsakymas iš AI
Python žodyno raktai turi būti nekintami, nes žodynas naudoja hashing, kad greitai pasiektų reikšmes. Jei raktas yra kintamas, jo hash gali pasikeisti po įterpimo į žodyną, todėl neįmanoma rasti šio rakto ir atitinkamos reikšmės.
Pavyzdžiui, eilutės, skaičiai ir tuple (sudaryti iš nekintamų elementų) yra tinkami raktai, nes jų hash nesikeičia.
Kintami raktai (pavyzdžiui, sąrašai ar žodynai) negali būti naudojami, nes jie neturi pastovaus hash ir nepalaiko hash() metodo. Bandymas naudoti kintamą objektą kaip raktą sukels TypeError klaidą.
Pavyzdys:
my_dict = {}
my_dict[[1, 2, 3]] = "value" # TypeError: unhashable type: 'list'
Taigi, rakto nekintamumas užtikrina teisingą žodyno hash lentelės veikimą.