Junior
Python-ის ლექსიკონებში გასაღებები რა შეიძლება იყოს?
sobes.tech AI
პასუხი AI-სგან
პითონის ლექსიკებში გასაღებები შეიძლება იყოს ნებისმიერი უცვლელი (hashable) ობიექტი.
უცვლელი მონაცემთა ტიპები მოიცავს:
- მთელი რიცხვები (
int) - ათწილადი რიცხვები (
float) - სტრიქონები (
str) - მხოლოდ უცვლელი ელემენტებისგან შემდგარი ტუპლები (
tuple) - ბულიან მნიშვნელობები (
bool) - NoneType (
None) - Frozenset (
frozenset) რომელიც შეიცავს მხოლოდ უცვლელ ელემენტებს
საშუალო მაგალითები დაშვებული გასაღებები:
# დაშვებული გასაღებები
my_dict = {
1: "ერთი",
3.14: "პი",
"გასაღები": "მნიშვნელობა",
(1, 2): "ტუპლი",
True: "სინამდვილე",
None: "არცერთი",
frozenset({1, 2}): "უცვლელი ნაკრები"
}
უცვლელი ობიექტებს აქვთ ჰეში, რომელიც გამოიყენება სწრაფი ძიებისთვის ლექსიკში.
ცვლადი მონაცემთა ტიპები, როგორიცაა სია (list), ნაკრები (set) და სხვა ლექსიკები (dict), არ შეიძლება იყოს გასაღებები, რადგან მათი შინაარსი შეიძლება შეიცვალოს, რაც დაარღვევს ჰეშის მთლიანობას.
არაშესაშური გასაღებების მაგალითები:
# არაშესაშური გასაღებები (შეიქმნება TypeError)
# my_dict = {
# [1, 2]: "სია",
# {1, 2}: "ნაკრები",
# {"a": 1}: "სხვა ლექსიკი"
# }