Sobes.tech
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։