Множества
Множества (sets) — это неупорядоченные коллекции уникальных элементов. Они полезны для выполнения операций, связанных с уникальностью данных, таких как удаление дубликатов, проверка принадлежности элемента и выполнение математических операций над множествами (объединение, пересечение, разность).
Создание множества
Множество создается с помощью фигурных скобок {} или функции set().
Элементы множества разделяются запятыми.
Важно: Пустое множество создается с помощью set(), а не {}, так как {} создает пустой словарь.
Особенности множеств
- Уникальность элементов: Множества автоматически удаляют дубликаты.
- Неупорядоченность: Элементы множества не имеют определенного порядка.
- Изменяемость: Множества могут изменяться (добавлять/удалять элементы), но сами элементы множества должны быть неизменяемыми (например, числа, строки, кортежи).
Добавление и удаление элементов
Добавление элементов
Для добавления элемента в множество используется метод add().
Удаление элементов
Для удаления элементов используются методы:
remove()— удаляет элемент, если он существует (иначе вызывает ошибку).discard()— удаляет элемент, если он существует (не вызывает ошибку, если элемента нет).pop()— удаляет и возвращает случайный элемент (так как множества неупорядочены).clear()— очищает множество.
Операции над множествами
Множества поддерживают математические операции, такие как объединение, пересечение, разность и симметрическая разность.
Объединение (union() или |)
Возвращает множество, содержащее все элементы из обоих множеств.
Пример:Пересечение (intersection() или &)
Возвращает множество, содержащее только общие элементы.
Пример:Разность (difference() или -)
Возвращает множество, содержащее элементы, которые есть в первом множестве, но отсутствуют во втором.
Пример:Симметрическая разность (symmetric_difference() или ^)
Возвращает множество, содержащее элементы, которые есть только в одном из множеств.
Пример:Проверка подмножества и надмножества
issubset()— проверяет, является ли множество подмножеством другого.issuperset()— проверяет, является ли множество надмножеством другого.
Итерация по множеству
Множества поддерживают итерацию с помощью цикла for.
Пример:10 20 30
Генерация множеств (Set Comprehension)
Множества можно создавать с помощью генераторов, аналогично спискам.
Пример:Множества — это мощный инструмент для работы с уникальными данными. Они поддерживают множество операций, таких как объединение, пересечение и разность, что делает их полезными для решения задач, связанных с уникальностью и сравнением данных.
Примеры решения задач
Задача: Напишите программу, которая находит общие элементы в двух множествах.
Решение: Для нахождения общих элементов в двух множествах в Python используется операция пересечения множеств. Она реализуется с помощью оператора & или метода intersection().
- Определение множеств: Мы создали два множества
set1иset2, содержащие различные элементы. - Операция пересечения: Оператор
&выполняет пересечение двух множеств, оставляя только те элементы, которые присутствуют в обоих множествах. - Вывод результата: Программа выводит множество общих элементов, в данном случае это
{4, 5}.
Альтернативный способ:
Вы можете использовать метод intersection() для достижения той же цели:
Этот метод тоже вернет множество общих элементов.
Задача: Создайте множество, содержащее квадраты чисел от 1 до 10, используя Set Comprehension.
Решение:
- Set Comprehension: Конструкция
{выражение for переменная in последовательность if условие}создает множество, применяя выражение ко всем элементам последовательности, удовлетворяющим условию (если оно есть). В нашем случае выражение — это возведение в квадратx**2, а последовательность — это диапазон чисел от 1 до 10 включительно. - Диапазон чисел:
range(1, 11)генерирует последовательность чисел от 1 до 10. Последнее число (11) не включается в диапазон. - Возведение в квадрат: Каждое число из диапазона возводится в квадрат с помощью выражения
x**2.
{64, 1, 36, 9, 16, 49, 81, 25, 4}
Обратите внимание, что элементы множества выводятся в случайном порядке, так как множества не сохраняют порядок вставки элементов.
Больше задач для практики вы найдёте в задачнике.