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 мебошанд.