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.