Sobes.tech
Middle

Aké obmedzenia platia pre kľúče v dict v Pythone?

sobes.tech AI

Odpoveď od AI

V Pythone musia byť kľúče v slovníku (dict) hashovateľné (nemenné) objekty. To znamená, že kľúče musia mať nezmeniteľný stav a implementovať metódu __hash__().

Hlavné obmedzenia:

  • Kľúče musia byť nemenné typy, napríklad: reťazce (str), čísla (int, float), n-tice (tuple), za predpokladu, že všetky prvky n-tice sú tiež hashovateľné.
  • Nie je možné používať meniace sa typy, ako sú zoznamy (list), množiny (set), slovníky (dict) ako kľúče, pretože nie sú hashovateľné.

Príklad:

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

invalid_dict = {
    [1, 2]: "list as key"  # spôsobí TypeError
}

Ak sa pokúsite použiť meniaci sa objekt ako kľúč, Python vráti chybu TypeError: unhashable type.