Sobes.tech
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 чыгарат.