Сообщить об ошибке.

Метод set.update() в Python, объединение множеств

Добавляет в множество элементы из одного или более множеств

Синтаксис:

# Метод
set.update(*others)

# Бинарный оператор
set1 |= set2 | ...

Параметры:

Возвращаемое значение:

  • Метод изменяет множество и не возвращает никакого результата.

Описание:

Метод set.update() позволяет добавить в множество set, элементы из одной или более последовательности поддерживающих итерирование. Метод изменяет множество set "на месте", т.е. добавляет элементы из всех итерируемых объектов *other (* - произвольное число позиционных аргументов). При выполнении операции добавления, дубликаты элементов последовательности игнорируются.

Метод set.update() принимает в качестве аргумента *other произвольное число любых объектов, поддерживающий итерацию по своим элементам. Это может быть список, кортеж, список ключей словаря, или другое множество и т.д.

Операция добавления позволяет использовать бинарный оператор |=, но при этом первый операнд должен быть изменяемым множеством, а добавляемые объекты должны быть множествами frozenset или set. Если это условие не выполнено поднимается исключение TypeError.

Эта операция поддерживается только изменяемым множеством set.

Для того, что-бы получить новое множество, полученное в результате объединения используйте метод union().

Примеры объединения последовательностей и множества:

>>> sets = {0, 1, 2, 3}
>>> fset = frozenset({3, 4, 7, 10})
>>> lists = [3, 5, 6, 7]
>>> tuples = (0, 1, 7, 8, 9)

# Использование метода
>>> sets.update(lists, tuples)
>>> sets
# {0, 1, 2, 3, 5, 6, 7, 8, 9}

>>> sets.clear()
# Дубликаты последовательностей игнорируются
>>> sets.update(fset, tuples)
>>> sets
# {0, 1, 3, 4, 7, 8, 9, 10}

>>> sets.clear()
# Использование бинарного оператора все
# объекты должны быть множествами
sets |= lists | tuples
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# TypeError: unsupported operand type(s) for |: 'list' and 'tuple'

sets |= frozenset(lists) | set(tuples) | fset
# {0, 1, 3, 4, 5, 6, 7, 8, 9, 10}