Sobes.tech
Middle

Python'da dict-də açarlar üçün hansı məhdudiyyətlər var?

sobes.tech Süni İntellekt

AI-dan cavab

Python-da, lüğət (dict) içindəki açarlar hash edilə bilən (dəyişməz) obyektlər olmalıdır. Bu, açarların dəyişməz vəziyyətdə olması və __hash__() metodunu həyata keçirməsi deməkdir.

Əsas məhdudiyyətlər:

  • Açarlar dəyişməz tiplər olmalıdır, məsələn: sətirlər (str), ədədlər (int, float), tuple-lər (tuple), və tuple elementlərinin də hash edilə bilən olması şərti ilə.
  • Listələr (list), dəstlər (set), sözlüklər (dict) kimi dəyişən tiplər açar kimi istifadə edilə bilməz, çünki onlar hash edilə bilməz.

Nümunə:

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

invalid_dict = {
    [1, 2]: "list as key"  # TypeError verəcək
}

Əgər dəyişən obyekt istifadə etməyə çalışsanız, Python TypeError: unhashable type xətası verəcək.