# Метод set.union(*others) # Бинарный оператор set1 | set2 | ...
*other
- произвольное число объектов поддерживающих итерациюset
, set1
и set2
- множество frozenset
или set
.set
или frozenset
.Метод set.union()
позволяет объединить множество с одной или более последовательностями поддерживающих итерирование. Метод возвращает новое множество с элементами из множества set
и элементами вставленными из всех итерируемых объектов *other
(* - произвольное число позиционных аргументов). При выполнении операции объединения, дубликаты игнорируются.
Метод set.union()
принимает в качестве аргумента *other
произвольное число любых объектов, поддерживающий итерацию по своим элементам. Это может быть список, кортеж, список ключей словаря, или другое множество и т.д.
Операция объединения позволяет использовать бинарный оператор |
(объединить), но при этом все объединяемые объекты должны быть множествами frozenset
или set
. Если это условие не выполнено поднимается исключение TypeError. Двоичные операции, которые смешивают экземпляры set
с frozenset
, возвращают тип первого операнда. Например: frozenset('ab') | set('bc')
возвращает экземпляр frozenset
.
Эта операция поддерживается как неизменяемым frozenset
, так изменяемым множеством set
.
Для того, что-бы изменить множество set
, полученное в результате добавления используйте метод set.update()
.
>>> sets = {0, 1, 2, 3} >>> fset = frozenset({2, 3, 4}) >>> lists = [5, 6, 7] >>> tuples = (7, 8, 9) # Использование метода >>> sets.union(lists, tuples, fset) # {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} # При объединении, дубликаты игнорируются >>> fset.union(sets, lists, tuples) # frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) # Использование бинарного оператора все # объекты должны быть множествами >>> sets | lists | tuples | fset # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # TypeError: unsupported operand type(s) for |: 'set' and 'list' # Все объекты должны быть множествами >>> sets | frozenset(lists) | frozenset(tuples) | fset # {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} # Тип получаемого результата зависит от первого операнда >>> fset | set(lists) | sets | set(tuples) # frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})