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.