Множества в 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 не предоставляет прямой способ получения значения к отдельным элементам множества. Однако, мы можем использовать цикл. Например:
for i in a:               #берем i из множества a поочередно
    print(i)
Результатом будут выведенные на экран (в столбик) элементы множества.
for i in a:
print (i, end=' ')
Результатом будут выведенные на экран (в строку через пробел) элементы множества.

Добавление и удаление элементов во множество

Мы можем проверить наличие элемента во множестве при помощи in
print("May" in a) #ищем "May" в множестве а
Если код возвращает "True", значит, что элемент был найден в множестве. При поиске элемента, который отсутствует во множестве, мы получим "False"
Python позволяет нам вносить новые элементы в множество при помощи функции add().
имя множества.add(добавляемые элемент)
а= {1, 2, 3}  
а.add(4) 
Итог
{1, 2, 3, 4}  

Удаление элемента из множеств

Python позволяет нам удалять элемент из множества, но не используя индекс, так как множество элементов не индексированы. Элементы могут быть удалены при помощи обоих методов discard() и remove().

Помните, что метод discard() не будет выдавать ошибку, если элемент не был найден во множестве. Однако, если метод remove() используется и элемент не был найден, возникнет ошибка.

С методом pop(), мы можем удалить и вернуть элемент. Так как элементы находятся в произвольном порядке, мы не можем утверждать или предсказать, какой элемент будет удален.

a= {1, 2, 3, 4, 5, 6}  
print(a.pop())
выбирает элемент из множества a

Вы можете использовать тот же метод при удалении элемента и возврате элементов, которые остаются во множестве.
a= {1, 2, 3, 4, 5, 6}  
a.pop() # удалит элемент
a.pop() # удалит еще элемент
print(a)


Метод Python
под названием clear() поможет удалить все элементы во множестве.

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

Объединение множеств

Предположим, у нас есть два множества, А и В. Объединение этих двух множеств — это множество со всеми элементами обеих множеств. Такая операция выполняется при помощи функции Python под названием union().

с = a.union(b)  
При выполнении операции объединения, дубликаты игнорируются, так что только один из двух элементов дубликатов будет отображаться.
Оператор | может также использоваться при поиске объединения двух или более множеств.
с=a|b|d

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

Предположим, у вас есть два множества: А и В. Их пересечение представляет собой множество элементов, которые являются общими для А и для В.

Операция пересечения во множествах может быть достигнута как при помощи оператора &, так и метода intersection().
с=a&d

Разница между множествами

Предположим, у вас есть два множества: А и В. Разница между А и В (А — В) — это множество со всеми элементами, которые содержатся в А, но не в В. Соответственно, (В — А) — это множество со всеми элементами в В, но не в А.

Для определения разницы между множествами в Python, мы можем использовать как функцию difference(), так и оператор — .
с=a-d
Симметричная разница между множествами А и В — это множество с элементами, которые находятся в А и В, за исключением тех элементов, которые являются общими для обеих множеств. Это определяется использованием метода Python под названием symmetric_difference(), или оператора ^.
с=a^d

Сравнение множеств

Мы можем сравнить множества в зависимости от того, какие элементы в них содержатся. Таким образом, мы можем сказать, является ли множество родительским, или дочерним от другого множества. Результат такого сравнения будет либо True, либо False.

Чтобы проверить, является ли множество А дочерним от В, мы можем выполнить следующую операцию:
A<=B

Чтобы узнать является ли множество В дочерним от А, мы можем выполнить следующую операцию, соответственно:
A>=B
Дочернее и родительское множество может также быть проверено при помощи методов issubset() и issuperset(), как показано ниже:

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

Метод copy()

Этот метод возвращает копию множества.

Метод isdisjoint()

Этот метод проверяет, является ли множество пересечением или нет. Если множества a и b не содержат общих элементов, метод возвращает True, в противном случае — False.

x = a.isdisjoint(b)

Метод 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() - очистка множества.