Sobes.tech
Middle

Python-ში dict-ის გასაღებებზე რა შეზღუდვები არსებობს?

sobes.tech AI

პასუხი AI-სგან

Python-ში, ლექსიკის (dict) გასაღებები უნდა იყოს ჰეშირებადი (immutable) ობიექტები. ეს ნიშნავს, რომ გასაღებები უნდა ჰქონდეთ შეუცვლელი მდგომარეობა და უნდა იმუშაონ __hash__() მეთოდზე.

ძირითადი შეზღუდვები:

  • გასაღებები უნდა იყოს შეუცვლელი ტიპები, მაგალითად: სტრიქონები (str), რიცხვები (int, float), ტუპლები (tuple), იმ შემთხვევაში, თუ ტუპლის ყველა ელემენტი ასევე ჰეშირებადი არის.
  • არ შეიძლება გამოიყენოთ ცვლილებადი ტიპები, როგორიცაა სია (list), ნაკრები (set), ლექსიკონი (dict) როგორც გასაღებები, რადგან ისინი არ არის ჰეშირებადი.

მაგალითი:

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

invalid_dict = {
    [1, 2]: "list as key"  # გამოიწვევს TypeError-ს
}

თუ სცადეთ ცვლილებადი ობიექტის გამოყენება გასაღებად, Python გამოიტანს შეცდომას TypeError: unhashable type.