Sobes.tech
Middle

Python'da dict ichidagi kalitlar uchun qanday cheklovlar mavjud?

sobes.tech AI

AIdan javob

Python'da, lug'at (dict) ichidagi kalitlar hashlanadigan (o'zgarmas) ob'ektlar bo'lishi kerak. Bu, kalitlarning o'zgarmas holatda bo'lishi va __hash__() metodini amalga oshirishi kerakligini anglatadi.

Asosiy cheklovlar:

  • Kalitlar o'zgarmas turdagi bo'lishi kerak, masalan: satrlar (str), raqamlar (int, float), to'plamlar (tuple), va agar to'plam elementlari ham hashlanadigan bo'lsa.
  • O'zgarmas bo'lmagan turlar, masalan: ro'yxatlar (list), to'plamlar (set), lug'atlar (dict) kalit sifatida ishlatilmasligi kerak, chunki ular hashlanmaydi.

Misol:

valid_dict = {
    "key": 1,
    42: "value",
    (1, 2): "tuple key"
}

invalid_dict = {
    [1, 2]: "list as key"  # TypeError xatosi chiqaradi
}

Agar o'zgarmas ob'ektni kalit sifatida ishlatishga harakat qilsangiz, Python TypeError: unhashable type xatosini chiqaradi.