Middle
Python'da dict'teki ачкычтар үчүн кандай чектөөлөр бар?
sobes.tech AI
AIден жооп
Pythonда, сөздүктүн (dict) ачкычтары хештелүүчү (өзгөрүлбөс) объекттер болушу керек. Бул, ачкычтардын өзгөрүлбөс абалда болушу жана __hash__() методуна ээ болушу керек дегенди билдирет.
Негизги чектөөлөр:
- Ачкычтар өзгөрүлбөс түрлөр болушу керек, мисалы: саптар (
str), сандар (int,float), тизмектер (tuple), эгер тизмектин бардык элементтери да хештелүүчү болсо. - Тизмелер (
list), топтомдор (set), сөздүктөр (dict) сыяктуу өзгөрүлүүчү түрлөрдү ачкыч катары колдонууга болбойт, анткени алар хештелүүчү эмес.
Мисал:
valid_dict = {
"key": 1,
42: "value",
(1, 2): "tuple key"
}
invalid_dict = {
[1, 2]: "list as key" # TypeError чыгарат
}
Эгер өзгөрүлүүчү объектти ачкыч катары колдонууга аракет кылсаңыз, Python ката TypeError: unhashable type чыгарат.