Sobes.tech
Middle

Jaká jsou omezení na klíče v dict v Pythonu?

sobes.tech AI

Odpověď od AI

V Pythonu musí být klíče v slovníku (dict) hashovatelné (neměnné) objekty. To znamená, že klíče musí mít neměnný stav a implementovat metodu __hash__().

Hlavní omezení:

  • Klíče musí být neměnné typy, například: řetězce (str), čísla (int, float), n-tice (tuple), za předpokladu, že všechny prvky n-tice jsou také hashovatelné.
  • Nelze používat měnitelné typy, jako jsou seznamy (list), množiny (set), slovníky (dict) jako klíče, protože nejsou hashovatelné.

Příklad:

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

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

Pokud se pokusíte použít měnitelný objekt jako klíč, Python vrátí chybu TypeError: unhashable type.