Sobes.tech
Junior

Kokie gali būti raktai Python žodynuose?

sobes.tech AI

Atsakymas iš AI

Python žodynų raktai gali būti bet kokie nepakitę (hashable) objektai.

Nepakeičiamų duomenų tipai apima:

  • Sveikus skaičius (int)
  • Slankiojuosius taškus (float)
  • Eilutes (str)
  • Tarpus (tuple), kurie turi tik nepakeičiamus elementus
  • Boolean reikšmes (bool)
  • NoneType (None)
  • Frozenset (frozenset), kuris turi tik nepakeičiamus elementus

Pavyzdžiai galimų raktų:

# Galimi raktai
mano_dict = {
    1: "vienas",
    3.14: "pi",
    "raktas": "reikšmė",
    (1, 2): "tarpas",
    True: "teisinga",
    None: "nėra",
    frozenset({1, 2}): "nepakitęs rinkinys"
}

Nepakeičiamieji objektai turi hash, kuris naudojamas greitam paieškai žodyne.

Keičiamų duomenų tipai, tokie kaip sąrašai (list), rinkiniai (set) ir kiti žodynai (dict), negali būti raktai, nes jų turinys gali keistis, kas pažeistų hash vientisumą.

Neteisingi pavyzdžiai:

# Neteisingi raktai (sukels TypeError)
# mano_dict = {
#     [1, 2]: "sąrašas",
#     {1, 2}: "rinkinys",
#     {"a": 1}: "kitas žodynas"
# }