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.