Множества в Python
| Сайт: | Информатикс |
| Курс: | Школа №1 Остров |
| Книга: | Множества в Python |
| Напечатано:: | Гость |
| Дата: | Вторник, 17 Март 2026, 17:44 |
Основное
Множества в Python – это структура данных, которые содержат неупорядоченные элементы. Элементы также не является индексированным. Как и список, множество позволяет внесение и удаление элементов. Однако, есть ряд особенных характеристик, которые определяют и отделяют множество от других структур данных:
- Множество не содержит дубликаты элементов;
- Элементы множества являются неизменными (их нельзя менять), однако само по себе множество является изменяемым, и его можно менять;
- Так как элементы не индексируются, множества не поддерживают никаких операций среза и индексирования.
Создание множеств
Создание множеств
1 способМы можем создать множество путем передачи всех элементов множества внутри фигурных скобок
{} и разделить элементы при помощи запятых (,). Множество может содержать любое количество элементов и элементы могут быть разных типов, к примеру, целые числа, строки, кортежи, и т. д. Однако, множество не поддерживает изменяемые элементы, такие как списки, словари, и так далее.a= {1, 2, 3, 4, 5, 6}
2 способ
Можем создать множество из списков.
a=set(list(map ( int, input().split() )))
Доступ к элементам множеств
Python не предоставляет прямой способ получения значения к отдельным элементам множества. Однако, мы можем использовать цикл. Например:Результатом будут выведенные на экран (в столбик) элементы множества.
Добавление и удаление элементов во множество
Мы можем проверить наличие элемента во множестве при помощиin
Python позволяет нам вносить новые элементы в множество при помощи функции
add().имя множества.add(добавляемые элемент)
Итог {1, 2, 3, 4}
Удаление элемента из множеств
Python позволяет нам удалять элемент из множества, но не используя индекс, так как множество элементов не индексированы. Элементы могут быть удалены при помощи обоих методов discard() и remove().
Помните, что метод discard() не будет выдавать ошибку, если элемент не был найден во множестве. Однако, если метод remove() используется и элемент не был найден, возникнет ошибка.
С методом pop(), мы можем удалить и вернуть элемент. Так как элементы находятся в произвольном порядке, мы не можем утверждать или предсказать, какой элемент будет удален.
Вы можете использовать тот же метод при удалении элемента и возврате элементов, которые остаются во множестве.
a= {1, 2, 3, 4, 5, 6}
a.pop() # удалит элемент
a.pop() # удалит еще элемент
print(a)
Метод Python под названием
clear() поможет удалить все элементы во множестве.Операции над множествами
Объединение множеств
Предположим, у нас есть два множества, А и В. Объединение этих двух множеств — это множество со всеми элементами обеих множеств. Такая операция выполняется при помощи функции Python под названием union().
При выполнении операции объединения, дубликаты игнорируются, так что только один из двух элементов дубликатов будет отображаться.
| может также использоваться при поиске объединения двух или более множеств.с=a|b|d
Пересечение множеств
Предположим, у вас есть два множества: А и В. Их пересечение представляет собой множество элементов, которые являются общими для А и для В.
Операция пересечения во множествах может быть достигнута как при помощи оператора&, так и метода intersection().с=a&d
Разница между множествами
Предположим, у вас есть два множества: А и В. Разница между А и В (А — В) — это множество со всеми элементами, которые содержатся в А, но не в В. Соответственно, (В — А) — это множество со всеми элементами в В, но не в А.
Для определения разницы между множествами в Python, мы можем использовать как функцию difference(), так и оператор — .с=a-d
Симметричная разница между множествами А и В — это множество с элементами, которые находятся в А и В, за исключением тех элементов, которые являются общими для обеих множеств. Это определяется использованием метода Python под названием
symmetric_difference(), или оператора ^.с=a^d
Сравнение множеств
Мы можем сравнить множества в зависимости от того, какие элементы в них содержатся. Таким образом, мы можем сказать, является ли множество родительским, или дочерним от другого множества. Результат такого сравнения будет либо True, либо False.
Чтобы проверить, является ли множество А дочерним от В, мы можем выполнить следующую операцию:
A<=B
Дочернее и родительское множество может также быть проверено при помощи методов
issubset() и issuperset(), как показано ниже:Методы множеств
Метод copy()
Этот метод возвращает копию множества.
Метод isdisjoint()
Этот метод проверяет, является ли множество пересечением или нет. Если множества a и b не содержат общих элементов, метод возвращает True, в противном случае — False.
Метод len()
Этот метод возвращает длину множества, которая является общим количеством элементов во множестве.
Операции
С множествами можно выполнять множество операций: находить объединение, пересечение...
- len(s) - число элементов в множестве (размер множества).
- x in s - принадлежит ли x множеству s.
- set.isdisjoint(other) - истина, если set и other не имеют общих элементов.
- set == other - все элементы set принадлежат other, все элементы other принадлежат set.
- set.issubset(other) или set <= other - все элементы set принадлежат other.
- set.issuperset(other) или set >= other - аналогично.
- set.union(other, ...) или set | other | ... - объединение нескольких множеств.
- set.intersection(other, ...) или set & other & ... - пересечение.
- set.difference(other, ...) или set - other - ... - множество из всех элементов set, не принадлежащие ни одному из other.
- set.symmetric_difference(other); set ^ other - множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих.
- set.copy() - копия множества.
И операции, непосредственно изменяющие множество:
- set.update(other, ...); set |= other | ... - объединение.
- set.intersection_update(other, ...); set &= other & ... - пересечение.
- set.difference_update(other, ...); set -= other | ... - вычитание.
- set.symmetric_difference_update(other); set ^= other - множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих.
- set.add(elem) - добавляет элемент в множество.
- set.remove(elem) - удаляет элемент из множества. KeyError, если такого элемента не существует.
- set.discard(elem) - удаляет элемент, если он находится в множестве.
- set.pop() - удаляет первый элемент из множества. Так как множества не упорядочены, нельзя точно сказать, какой элемент будет первым.
- set.clear() - очистка множества.