Middle
Ce restricții există pentru chei în dict în Python?
sobes.tech AI
Răspuns de la AI
În Python, cheile dintr-un dicționar (dict) trebuie să fie obiecte hashabile (imutable). Aceasta înseamnă că cheile trebuie să aibă o stare imuabilă și să implementeze metoda __hash__().
Restricții principale:
- Cheile trebuie să fie tipuri imuabile, de exemplu: șiruri (
str), numere (int,float), tuple (tuple), cu condiția ca toate elementele tuple-ului să fie, de asemenea, hashabile. - Nu se pot folosi tipuri mutabile, precum liste (
list), seturi (set), dicționare (dict) ca chei, deoarece acestea nu sunt hashabile.
Exemplu:
valid_dict = {
"key": 1,
42: "value",
(1, 2): "tuple key"
}
invalid_dict = {
[1, 2]: "list as key" # va genera o eroare TypeError
}
Dacă încerci să folosești un obiect mutabil ca și cheie, Python va returna o eroare TypeError: unhashable type.