Middle
Kāpēc Python vārdnīcas atslēgas ir jābūt nemainīgām un vai ir iespējams izmantot maināmās atslēgas?
sobes.tech AI
Atbilde no AI
Python vārdnīcas atslēgas ir jābūt nemainīgām, jo vārdnīca izmanto hashing, lai ātri piekļūtu vērtībām. Ja atslēga ir mainīga, tās hash var mainīties pēc tās ievietošanas vārdnīcā, kas padara neiespējamu šo atslēgu un attiecīgi vērtības atrašanu.
Piemēram, virknes, skaitļi un tuple (kas sastāv no nemainīgiem elementiem) ir piemērotas atslēgas, jo to hash nemainās.
Mainīgas atslēgas (piemēram, saraksti vai vārdnīcas) nav atļautas, jo tām nav pastāvīga hash un tās neatbalsta hash() metodi. Mēģinājums izmantot mainīgu objektu kā atslēgu izraisīs TypeError kļūdu.
Piemērs:
my_dict = {}
my_dict[[1, 2, 3]] = "value" # TypeError: unhashable type: 'list'
Tādējādi, nemainīgums atslēgās nodrošina pareizu vārdnīcas hash tabulas darbību.