Множества (sets) в Python представляют собой неупорядоченные коллекции уникальных элементов. Они обладают рядом полезных методов, которые позволяют легко манипулировать данными, проводить математические операции и управлять элементами внутри множеств. В этой статье мы рассмотрим основные методы множеств в Python с примерами их использования.
- Метод add() — добавляет элемент
- Метод remove() — удаляет указанный элемент, если он существует
- Метод discard() — удаляет указанный элемент, если он существует, не вызывает ошибку, если элемент отсутствует
- Метод pop() — удаляет и возвращает случайный элемент
- Метод clear() — удаляет все элементы
- Метод union() — возвращает объединение множеств
- Метод intersection() — возвращает пересечение множеств
- Метод difference() — возвращает разность множеств
- Метод symmetric_difference() — возвращает симметрическую разность множеств
- Метод update() — добавляет элементы из другого множества
- Метод intersection_update() — оставляет в множестве только элементы, присутствующие в обоих множествах
- Метод difference_update() — удаляет из множества элементы, присутствующие в другом множестве
- Метод symmetric_difference_update() — оставляет в множестве только элементы, присутствующие в одном из множеств
- Метод issubset() — проверяет, является ли множество подмножеством другого множества
- Метод issuperset() — проверяет, является ли множество надмножеством другого множества
- Метод isdisjoint() — проверяет, не имеют ли множества общих элементов
Метод add()
— добавляет элемент
Метод add() добавляет элемент в множество. Если элемент уже существует, множество остается неизменным.
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # Вывод: {1, 2, 3, 4}
my_set.add(2)
print(my_set) # Вывод: {1, 2, 3, 4} # Элемент 2 уже существует
Метод remove()
— удаляет указанный элемент, если он существует
Метод remove() удаляет указанный элемент из множества. Если элемент отсутствует, возникает ошибка
KeyError
.
my_set = {1, 2, 3}
my_set.remove(2)
print(my_set) # Вывод: {1, 3}
# my_set.remove(4) # Возникает ошибка KeyError, так как элемента 4 нет в множестве
Метод discard()
— удаляет указанный элемент, если он существует, не вызывает ошибку, если элемент отсутствует
Метод discard()
удаляет указанный элемент из множества, если он существует. Если элемент отсутствует, ничего не происходит.
my_set = {1, 2, 3}
my_set.discard(2)
print(my_set) # Вывод: {1, 3}
my_set.discard(4)
print(my_set) # Вывод: {1, 3} # Элемента 4 нет, но ошибки не возникает
Метод pop()
— удаляет и возвращает случайный элемент
Метод pop()
удаляет и возвращает случайный элемент из множества. Если множество пусто, возникает ошибка KeyError
.
my_set = {1, 2, 3}
element = my_set.pop()
print(element) # Вывод: случайный элемент (1, 2 или 3)
print(my_set) # Вывод: множество без удаленного элемента
Метод clear()
— удаляет все элементы
Метод clear()
удаляет все элементы из множества, делая его пустым.
my_set = {1, 2, 3}
my_set.clear()
print(my_set) # Вывод: set() # Пустое множество
Метод union()
— возвращает объединение множеств
Метод union()
возвращает новое множество, содержащее все элементы из исходных множеств. Аналог оператора |
.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)
print(union_set) # Вывод: {1, 2, 3, 4, 5}
Метод intersection()
— возвращает пересечение множеств
Метод intersection()
возвращает новое множество, содержащее только общие элементы из исходных множеств. Аналог оператора &
.
set1 = {1, 2, 3}
set2 = {2, 3, 4}
intersection_set = set1.intersection(set2)
print(intersection_set) # Вывод: {2, 3}
Метод difference()
— возвращает разность множеств
Метод difference()
возвращает новое множество, содержащее элементы, которые присутствуют в первом множестве, но отсутствуют во втором. Аналог оператора -
.
set1 = {1, 2, 3}
set2 = {2, 3, 4}
difference_set = set1.difference(set2)
print(difference_set) # Вывод: {1}
Метод symmetric_difference()
— возвращает симметрическую разность множеств
Метод symmetric_difference()
возвращает новое множество, содержащее элементы, которые присутствуют в одном из множеств, но не в обоих. Аналог оператора ^
.
set1 = {1, 2, 3}
set2 = {2, 3, 4}
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set) # Вывод: {1, 4}
Метод update()
— добавляет элементы из другого множества
Метод update()
добавляет элементы из другого множества или любого итерируемого объекта в исходное множество. Аналог оператора |=
.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
set1.update(set2)
print(set1) # Вывод: {1, 2, 3, 4, 5}
Метод intersection_update()
— оставляет в множестве только элементы, присутствующие в обоих множествах
Метод intersection_update()
оставляет в исходном множестве только элементы, присутствующие в обоих множествах. Аналог оператора &=
set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.intersection_update(set2)
print(set1) # Вывод: {2, 3}
Метод difference_update()
— удаляет из множества элементы, присутствующие в другом множестве
Метод difference_update()
удаляет из исходного множества элементы, присутствующие в другом множестве. Аналог оператора -=
.
set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.difference_update(set2)
print(set1) # Вывод: {1}
Метод symmetric_difference_update()
— оставляет в множестве только элементы, присутствующие в одном из множеств
Метод symmetric_difference_update()
оставляет в исходном множестве только элементы, которые присутствуют в одном из множеств, но не в обоих. Аналог оператора ^=
.
set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.symmetric_difference_update(set2)
print(set1) # Вывод: {1, 4}
Метод issubset()
— проверяет, является ли множество подмножеством другого множества
Метод issuperset()
возвращает True
, если все элементы другого множества являются элементами исходного множества.
set1 = {1, 2, 3}
set2 = {1, 2}
print(set1.issuperset(set2)) # Вывод: True
print(set2.issuperset(set1)) # Вывод: False
Метод issuperset()
— проверяет, является ли множество надмножеством другого множества
Метод issuperset()
возвращает True
, если все элементы другого множества являются элементами исходного множества.
set1 = {1, 2, 3}
set2 = {1, 2}
print(set1.issuperset(set2)) # Вывод: True
print(set2.issuperset(set1)) # Вывод: False
Метод isdisjoint()
— проверяет, не имеют ли множества общих элементов
Метод isdisjoint()
возвращает True
, если множества не имеют общих элементов.
set1 = {1, 2, 3}
set2 = {4, 5, 6}
print(set1.isdisjoint(set2)) # Вывод: True
set3 = {3, 4, 5}
print(set1.isdisjoint(set3)) # Вывод: False