Множество в Python — это структура данных, содержащая неупорядоченные уникальные элементы. Элементы не проиндексированы и не имеют порядкового номера, располагаясь в случайном порядке.
Свойства множеств
- Неупорядоченность: Элементы множества не упорядочены.
- Уникальность элементов: Все элементы уникальны, дубликаты отсутствуют.
- Изменяемость: Элементы множества неизменяемы. Само множество можно изменять (добавлять, удалять элементы).
Создание множеств
Создать множество можно несколькими способами:
- Фигурные скобки:
chisla = {1, 2, 4, 6, 7} print(chisla)
Элементами могут быть числа, строки и другие типы данных.
- Пустое множество: Пустое множество создаётся функцией set():
pusto = set() print(type(pusto)) # <class 'set'>
- Из других структур: Множество создаётся из списка или кортежа функцией set(). Это удобно для удаления дубликатов:
spisok = [1, 1, 1, 2, 4, 2] mnozhestvo = set(spisok) print(mnozhestvo) # {1, 2, 4}
Работа с множествами
Доступ к элементам
Доступ к элементам осуществляется циклом for:
numbers = {1, 2, 3, 4, 5, 6, 7}
for x in numbers:
print(x)
Проверка наличия элемента — оператор in:
print(3 in numbers) # True
print(58 in numbers) # False
Добавление и удаление элементов
- Добавление: Метод add() добавляет элемент:
numbers.add(58) print(numbers)
- Удаление:
- discard() удаляет элемент, если он присутствует. Ошибка не возникает, если элемента нет.
numbers.discard(58) print(numbers)
- remove() удаляет элемент. Вызывает ошибку KeyError, если элемента нет.
numbers.remove(3) print(numbers)
- pop() удаляет и возвращает произвольный элемент.
- clear() удаляет все элементы:
numbers.clear() print(numbers) # set()
- discard() удаляет элемент, если он присутствует. Ошибка не возникает, если элемента нет.
Операции над множествами
- Объединение: union() или |:
set1 = {2, 6, 54, 40}
set2 = {2, 3}
set3 = set1.union(set2) # или set3 = set1 | set2
print(set3) # {2, 3, 6, 40, 54}
- Пересечение: intersection() или &:
set4 = set1.intersection(set2) # или set4 = set1 & set2
print(set4) # {2}
- Разность: -:
set5 = set1 - set2
print(set5) # {54, 40, 6}
- Копирование: copy():
set6 = set1.copy()
print(set6)
- Длина: len():
print(len(set1))
Неизменяемые множества
Неизменяемое множество создаётся функцией frozenset():
immutable_set = frozenset({1, 2, 3, 4, 5, 6, 7})
# immutable_set.add(8) # Вызовет ошибку AttributeError
print(immutable_set)
print(type(immutable_set)) # <class 'frozenset'>
Множества — эффективный инструмент в Python для работы с уникальными данными. Знание их свойств и методов позволяет эффективно обрабатывать коллекции данных.