Sobes.tech
Middle

Kokios yra ribos raktams dict Python?

sobes.tech AI

Atsakymas iš AI

Python'e žodynėlio (dict) raktai turi būti hash'able (nekeičiami) objektai. Tai reiškia, kad raktai turi turėti nekintamą būseną ir įgyvendinti metodą __hash__().

Pagrindiniai apribojimai:

  • Raktai turi būti nekintami tipai, pavyzdžiui: eilutės (str), skaičiai (int, float), tuple'ai (tuple), jei visi tuple elementai taip pat yra hash'able.
  • Negalima naudoti keičiamų tipų, tokių kaip sąrašai (list), rinkiniai (set), žodynai (dict) kaip raktų, nes jie nėra hash'able.

Pavyzdys:

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

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

Jei bandysite naudoti keičiamą objektą kaip raktą, Python išmes klaidą TypeError: unhashable type.