# Метод 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}