Junior
Python'da qanday ob'ektlar to'plamga joylashtirilishi mumkin?
sobes.tech AI
AIdan javob
Python'da set ichida o'zgarmas (hashable) ob'ektlar joylashtirilishi mumkin.
Bular quyidagilarni o'z ichiga oladi:
- Raqamlar (butun, o'nlik, murakkab)
- Matn satrlari
- Tuple (agar uning barcha elementlari ham o'zgarmas bo'lsa)
- Frozenset (set ning o'zgarmas versiyasi)
Setga joylashtirilmaydigan ob'ektlar:
- Ro'yxatlar (list)
- To'plamlar (set) - lekin frozenset ishlatilishi mumkin
- Lug'atlar (dict)
Misol:
# O'zgarmas ob'ektlar, setga joylashtirilishi mumkin
valid_set = {1, "olma", (1, 2), frozenset({3, 4})}
# O'zgarmas bo'lmagan ob'ektlar, setga joylashtirilmaydi
# invalid_set = {[1, 2], {3, 4}, {"a": 1}} # Bu TypeError xatosini keltirib chiqaradi
Hashlash — bu ob'ekt uchun doimiy (fiks) qiymat (hash) hisoblash jarayonidir. Ob'ekt hashga mos bo'lishi uchun __hash__() metodiga ega bo'lishi va uning hash qiymati uning hayoti davomida o'zgarmasligi kerak. Python'dagi o'zgarmas ob'ektlar, tabiatiga ko'ra, hashga mos keladi.