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.