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
Хеширането е процес на изчисляване на фиксирана стойност (хеш) за обект. За да бъде обектът хешируем, той трябва да притежава метода __hash__() и неговата стойност на хеша не трябва да се променя през целия му жизнен цикъл. Неизменяемите обекти в Python по своята природа са хешируеми.