Sobes.tech
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.