Sobes.tech
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.