Методы множеств#
Множества возвращают уникальный набор элементов из последовательности (последовательность должна быть из неизменяемых объектов):
s = set([1, 1, 2, 2, 5, 5])
s
{1, 2, 5}
add- добавляет элемент в множество, если такого элемента в нем еще нет. Если элемент уже содержится в множестве, то множество не изменится
s = set([1, 1, 2, 2, 5, 5])
s.add(5)
s
{1, 2, 5}
s = set([1, 1, 2, 2, 5, 5])
s.add(6)
s
{1, 2, 5, 6}
clear- удаляет все элементы из текущего множества
s = set([1, 1, 2, 2, 5, 5])
s.clear()
s
set()
copy- возвращает копию текущего множества, содержащую такой же набор объектов
s = set([1, 1, 2, 2, 5, 5])
# Во время копирования мы создаем новую переменную, которая указывает на новое множество
new_s = s.copy()
id(s), id(new_s)
(139805213194752, 139805213194528)
s = set([1, 1, 2, 2, 5, 5])
# Во время присваивания мы создаем новую переменную, которая указывает на то же множество
new_s = s
id(s), id(new_s)
(139805213194976, 139805213194976)
difference- возвращает элементы текущего множества, отсутствующие в множестве, переданном в качестве параметра функции
s = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])
s.difference(s2)
{1, 2}
difference_update- удаляет из текущего множества элементы, присутствующие в множестве, переданном в качестве параметра функции
s = set([1, 1, 2, 2, 5, 5])
s2 = set([1, 2])
s.difference_update(s2)
s
{5}
discard- удаляет элемент из текущего множества
s = set([1, 1, 2, 2, 5, 5])
s.discard(5)
s
{1, 2}
intersection- возвращает результат пересечения текущего множества с множеством, переданном в качестве параметра функции
s = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])
s.intersection(s2)
{3, 4, 5}
intersection_update- удаляет из текущего множества элементы, не входящие в множество, переданное в качестве параметра функции
s = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])
s.intersection_update(s2)
s
{3, 4, 5}
isdisjoint- проверяет наличие пересечения между множествами. ВозвращаетTrue, если пересечения нет
s = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])
s.isdisjoint(s2)
False
s = set([1, 2, 3, 4, 5])
s2 = set([6, 7, 8, 9, 10])
s.isdisjoint(s2)
True
issubset- проверяет все ли элементы текущего множества входят в множество, переданное в качестве параметра функции (является ли текущее множество подмножеством другого)
s = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3])
s.issubset(s2)
False
s = set([1, 2, 3])
s2 = set([1, 2, 3, 4, 5])
s.issubset(s2)
True
issuperset- проверяет включает ли в себя текущее множество все элементы переданного
s = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3])
s.issuperset(s2)
True
s = set([1, 2, 3])
s2 = set([1, 2, 3, 4, 5])
s.issuperset(s2)
False
pop- удаляет первый элемент из текущего множества и возвращает его
s = set([1, 1, 2, 2, 5, 5])
v = s.pop()
s, v
({2, 5}, 1)
remove- удаляет значение из текущего множества
s = set([1, 1, 2, 2, 5, 5])
s.remove(2)
s
{1, 5}
symmetric_difference- возвращает элементы множеств, не попавшие в их пересечение
s = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])
s.symmetric_difference(s2)
{1, 2, 6, 7}
symmetric_difference_update- заменяет элементы текущего множества элементами из двух множеств, не попавшими в их пересечение
s = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])
s.symmetric_difference_update(s2)
s
{1, 2, 6, 7}
union- возвращает объединение двух множеств
s = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])
s.union(s2)
{1, 2, 3, 4, 5, 6, 7}
update- добавляет в исходное множество элементы из множества, переданного в качестве параметра функции
s = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])
s.update(s2)
s
{1, 2, 3, 4, 5, 6, 7}