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

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

Объединить множество с одной или более последовательностями

Синтаксис:

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

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

Параметры:

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

  • новое множество 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})