Ինչու՞ Python-ի բառարանի բանալիները պետք է լինեն փոփոխական և արդյոք կարելի է օգտագործել փոփոխական բանալիներ։
sobes.tech AI
Պատասխան AI-ից
Python-ի բառարանի բանալիները պետք է լինեն փոփոխական չլինեն, քանի որ բառարանը օգտագործում է hashing՝ արագ մուտք գործելու համար արժեքների։ Եթե բանալին փոփոխական է, նրա hash-ը կարող է փոխվել այն տեղադրելուց հետո, ինչը դարձնում է այդ բանալին և համապատասխան արժեքը գտնելը անհնար:
Օրինակ, տողերը, թվերը և tuple-երը (որոնք բաղկացած են փոփոխական չլինող տարրերից) համապատասխան բանալիներ են, քանի որ նրանց hash-ը մնում է անփոփոխ:
Չփոփոխական բանալիներ (օրինակ՝ ցանկեր կամ բառարաններ) օգտագործել չի կարելի, քանի որ նրանց չունեն կայուն hash և չեն աջակցում hash() մեթոդին։ Փորձել փոփոխական օբյեկտ օգտագործել որպես բանալին՝ կհանգեցնի TypeError սխալի:
Օրինակ:
my_dict = {}
my_dict[[1, 2, 3]] = "value" # TypeError: unhashable type: 'list'
Այսպիսով, բանալիների փոփոխական չլինելը ապահովում է բառարանի hash աղյուսակի ճիշտ աշխատանքը։