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

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