Middle
Ի՞նչ սահմանափակումներ կան Python-ի dict-ի բանալիների վրա։
sobes.tech AI
Պատասխան AI-ից
Python-ում, բառարանի (dict) բանալիները պետք է լինեն hashable (անփոփոխելի) օբյեկտներ: Սա նշանակում է, որ բանալիները պետք է ունենան անփոփոխ վիճակ և իրականացնել __hash__() մեթոդը:
Հիմնական սահմանափակումներ՝
- Բանալիները պետք է լինեն անփոփոխ տիպեր, օրինակ՝ տողեր (
str), թվեր (int,float), տոպրակներ (tuple), պայմանով, որ տոպրակի բոլոր տարրերը նույնպես hashable լինեն: - Չի կարելի օգտագործել փոփոխական տիպեր, ինչպիսիք են ցանկերը (
list), հավաքածուները (set), բառարանները (dict) որպես բանալիներ, քանի որ դրանք չեն hashable:
Օրինակ՝
valid_dict = {
"key": 1,
42: "value",
(1, 2): "tuple key"
}
invalid_dict = {
[1, 2]: "list as key" # առաջացնում է TypeError
}
Եթե փորձեք օգտագործել փոփոխական օբյեկտ որպես բանալին, Python-ը կվերադարձնի սխալ TypeError: unhashable type։