# Метод
set.update(*others)
# Бинарный оператор
set1 |= set2 | ...
set
и set1
- только изменяемое множество set
.*others
- произвольное число объектов поддерживающих итерациюset2
- множество frozenset
или set
.Метод 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}