Справочник Python

Полное руководство по языку на русском

Множества

Создание множеств

empty = set()       # {}, но {} это словарь!
nums = {1, 2, 3, 2}  # {1, 2, 3} (дубликаты удалены)
from_list = set([1, 2, 2, 3])  # {1, 2, 3}
from_str = set("hello")  # {'h', 'e', 'l', 'o'}

# Генератор множества
squares = {x**2 for x in range(5)}  # {0, 1, 4, 9, 16}

Операции с множествами

a = {1, 2, 3, 4}  # инициализация множества
b = {3, 4, 5, 6}  # инициализация множества

# Объединение
a | b           # {1, 2, 3, 4, 5, 6}
a.union(b)

# Пересечение
a & b           # {3, 4}
a.intersection(b)

# Разность
a - b           # {1, 2} (что в a, но не в b)
a.difference(b)
b - a           # {5, 6}

# Симметрическая разность
a ^ b           # {1, 2, 5, 6}
a.symmetric_difference(b)

# Подмножество / надмножество
{1, 2}.issubset(a)     # True
a.issuperset({1, 2})   # True
{1, 2}.isdisjoint({3}) # True (нет общих)

Методы множеств

s = {1, 2, 3}  # инициализация множества

s.add(4)              # {1, 2, 3, 4}
s.remove(4)           # KeyError если нет
s.discard(4)
s.pop()  # удаление и возврат последнего элемента
s.clear()             # {}

# Неизменяемое множество
fs = frozenset([1, 2, 3])  # присваивание

Применение множеств

# Удаление дубликатов
list(set([1, 2, 2, 3, 3, 3]))  # [1, 2, 3]

# Поиск общих элементов
common = set(list1) & set(list2)  # преобразование в множество

# Поиск уникальных
unique = set(list1) - set(list2)  # преобразование в множество

# Проверка уникальности
def has_duplicates(lst):
    return len(lst) != len(set(lst))  # возврат значения