set
Множества используются для хранения неупорядоченных коллекций уникальных объектов.
Множество может содержать только элементы неизменяемых типов, например числа, строки, кортежи.
set([1,1,1,1,2])
# {1, 2}
set('abc')
# {'a', 'b', 'c'}
{'abc'}
# {'abc'}
{1, 2, 3}
# {1, 2, 3}
{(1, 1), (1, 1), (1, 2)}
# {(1, 1), (1, 2)}
len({1, 1, 2})
# 2
1 in {1, 1, 2}
# True
3 in {1, 1, 2}
# False
add
(obj)Добавляет новый объект в множество
{1, 2}.add(3)
# {1, 2, 3}
clear
()Очищает множество
{1, 2}.clear()
# {}
copy
()Возвращает копию объекта
{1, 2}
# {1, 2}
difference
(iterable1, iterable2, ...)Возвращает set
, разницу между множеством и итерируемым объектом
{1, 2, 3}.difference([1, 2, 4])
# {3}
{1, 2, 3} - {1, 2, 4}
# {3}
difference_update
(iterable1, iterable2, ...)Удаляет элементы множества, которые присутствуют в обоих множествах
{1,2,3}.difference_update(set([1,2,4]))
# s = {3}
s -= set([3,4,5])
# s = {}
discard
(obj)Удаляет объект из множества, если объекта в множестве нет, исключения не будет, как при remove
{1, 2}.discard(3)
# {1, 2}
intersection
(iterable1, iterable2, ...)Возвращает множество set
, элементы которого существуют в указанных объектах
{1, 2, 3}.intersection([1,2,4])
# {1, 2 }
{1, 2, 3} & set([1,2,4])
# {1, 2}
intersection_update
(iterable1, iterable2, ...)В исходном множестве останутся только которые, которые есть в обоих множествах
{1, 2, 3}.intersection_update([1, 2, 4])
# {1, 2}
s &= {1, 6, 7}
# {1}
isdisjoint
(iterable)Возвращает bool
, множества не имеют одинаковых элементов
{1, 2, 3}.isdisjoint([4, 5, 6])
# True
{1, 2, 3}.isdisjoint([4, 5, 1])
# False
bool({1, 2, 3} & {4, 5, 6})
issubset
(iterable)Возвращает bool
, входит ли исходное множество в указанное
{1, 2, 3}.issubset([1,2,3,4])
# True
{1, 2, 3} <= {1, 2, 3}
# True
{1, 2, 3} <= {1, 2, 3, 4}
# True
{1, 2, 3} < {1, 2, 3}
# False
{1, 2, 3} < {1, 2, 3, 4}
# True
issuperset
(iterable)Возвращает bool
, входит ли указанное множество в исходное множество
{1, 2, 3}.issuperset([1,2])
# True
{1, 2, 3} >= {1, 2}
# True
{1, 2, 3} >= {1, 2, 3}
# True
{1, 2, 3} > {1, 2}
# True
{1, 2, 3} > {1, 2, 3}
# False
pop
()Возвращает произвольный объект множества, удалив его из множества
{1, 2, 3}.pop()
# 2
set().pop()
# KeyError
remove
(obj)Удаляет объект из множества
{1, 2}.remove(1)
# {2}
{1, 2}.remove(3)
# KeyError
symmetric_difference
(iterable)Возвращает множество set
, которое не содержит одинаковых элементов в обоих объектах
{1, 2, 3}.symmetric_difference([1, 2, 4])
# {3, 4}
{1, 2, 3} ^ {1, 2, 4} ^ {1, 2, 5}
# {3, 4, 5}
symmetric_difference_update
(iterable)Оставляет в исходном множестве все элементы, кроме одинаковых
{1,2,3}.symmetric_difference_update([1,2,4])
# {3, 4}
{1, 2, 3} ^= {1, 2, 4}
# {3, 4}
union
(iterable1, iterable2, ...)Возвращает новое множество set
, объединенное c переданным итерируемым объектом
{1, 2, 3}.union([4, 5, 6])
# {1, 2, 3, 4, 5, 6}
{1, 2, 3}.union([4, 5, 6], (6, 5, 4))
# {1, 2, 3, 4, 5, 6}
{1, 2, 3} | set([4, 5, 6])
# {1, 2, 3, 4, 5, 6}
update
(iterable1, iterable2, ...)Добавляет в множество новые элементы
{1, 2, 3}.update([4,5,6], (7, 8))
# {1, 2, 3, 4, 5, 6, 7, 8}
s |= {9}
# {1, 2, 3, 4, 5, 6, 7, 8, 9}
remove
(obj)New in version 3.x.
{ i for i in [1,2,3,1]}
# {1,2,3}