set

class 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}