Подмножества: issubset()
A
B
A = {1, 2}B = {1, 2, 3}print(A.issubset(B)) # True
Надмножества: issuperset()
A = {1, 2, 3}B = {1, 2}print(A.issuperset(B)) # True
Непересекающиеся множества: isdisjoint()
A = {1, 2}B = {3, 4}print(A.isdisjoint(B)) # True
Проверка равенства: == и !=
A = {1, 2, 3}B = {3, 2, 1}print(A == B) # True
Собственные подмножества и надмножества
A = {1, 2}B = {1, 2, 3}print(A < B) # True (A — собственное подмножество B)
Частичное сравнение: <= и >=
Синтаксис множественных включений
squares = {x ** 2 for x in range(5)} # {0, 1, 4, 9, 16}
Примеры использования генераторов
even_numbers = {x for x in range(10) if x % 2 == 0} # {0, 2, 4, 6, 8}
Фильтрация элементов в генераторах
words = {"hello", "world", "python"}filtered = {word for word in words if len(word) > 5} # {'python'}
Что такое frozenset?
Создание и использование frozenset
fs = frozenset([1, 2, 3])print(fs) # frozenset({1, 2, 3})
Применение frozenset как ключей словаря
d = {frozenset({1, 2}): "value"}print(d) # {frozenset({1, 2}): 'value'}
Методы frozenset
Попытка добавления изменяемых объектов
valid = { frozenset({1, 2}) } # OK
Производительность операций (таблица Big-O)
Хэширование и уникальность элементов
Поведение различных типов данных в множествах
Удаление дубликатов из последовательностей
numbers = [1, 2, 2, 3, 3]unique = list(set(numbers)) # [1, 2, 3] (порядок может измениться)
Проверка на уникальность данных
data = [1, 2, 3, 2]is_unique = len(data) == len(set(data)) # False (есть дубли)
Быстрая проверка принадлежности