Sobes.tech
Middle

Milyen korlátozások vannak a kulcsokra a dict-ben Pythonban?

sobes.tech MI

Válasz az MI-től

Pythonban a szótár (dict) kulcsainak hash-elhető (immutable) objektumoknak kell lenniük. Ez azt jelenti, hogy a kulcsoknak változatlan állapotban kell lenniük, és meg kell valósítaniuk a __hash__() metódust.

Fő korlátozások:

  • A kulcsoknak immutábilis típusoknak kell lenniük, például: szövegek (str), számok (int, float), tuple-ök (tuple), feltéve, hogy a tuple összes eleme is hash-elhető.
  • Nem lehet változtatható típusokat, például listákat (list), halmazokat (set), szótárakat (dict) kulcsként használni, mivel ezek nem hash-elhetők.

Példa:

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

invalid_dict = {
    [1, 2]: "list as key"  # TypeError-t fog eredményezni
}

Ha megpróbálsz egy változtatható objektumot kulcsként használni, a Python TypeError: unhashable type hibát fog adni.