Sobes.tech
Junior

Кадом объект дар Python дар маҷмӯъ ҷойгир карда мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар маҷмӯъ (set) дар Python метавон объектҳои тағйирнопазир (hashable) гузошт.

Инҳо дохил мешаванд:

  • Суммаҳо (ҳақиқӣ, флот, мураккаб)
  • Рангҳо
  • Тупҳо (агар ҳамаи унсурҳои он низ тағйирнопазир бошанд)
  • Frozenset (версияи тағйирнопазирии set)

Объектҳое, ки наметавон дар маҷмӯъ гузошт:

  • Листҳо (list)
  • Маҳсулот (set) - аммо метавон истифода бурд frozenset
  • Луғатҳо (dict)

Масалан:

# Объектҳои тағйирнопазир, ки метавонанд дар маҷмӯъ гузошта шаванд
valid_set = {1, "ҷомӣ", (1, 2), frozenset({3, 4})}

# Объектҳои тағйирёбанда, ки дар маҷмӯъ гузошта намешаванд
# invalid_set = {[1, 2], {3, 4}, {"a": 1}} # Ин TypeError-ро ба вуҷуд меорад

Hashing — раванди ҳисоб кардани арзиши доимӣ (hash) барои объект аст. Барои он, ки объект hashable бошад, бояд метод __hash__() дошта бошад ва арзиши hash-и он дар давоми ҳаёти он тағйир наёбад. Объектҳои тағйирнопазир дар Python, аз табиат, hashable мебошанд.