Cómo unir dos conjuntos en Python

Jinku Hu 30 enero 2023
  1. A |= B para unir dos conjuntos en Python
  2. A.update(B) para unir dos conjuntos en Python
  3. A.union(B) para unir dos conjuntos en Python
  4. reduce(operator.or_, [A, B]) para unir dos sets en Python
Cómo unir dos conjuntos en Python

En este tutorial, introduciremos diferentes métodos para unir dos sets en Python.

  1. A |= B
  2. A.update(B)
  3. A.union(B)
  4. reduce(operator.or_, [A, B])

A |= B para unir dos conjuntos en Python

A |= B añade todos los elementos del conjunto B al conjunto A.

>>> A = {4, 5, 6, 7}
>>> B = {6, 7, 8, 9}
>>> A |= B
>>> A
{4, 5, 6, 7, 8, 9}

A.update(B) para unir dos conjuntos en Python

El método A.update(B) es idéntico al A |= B. Modifica el conjunto A en su lugar.

>>> A = ["a", "b", "c"]
>>> B = ["b", "c", "d"]
>>> A.update(B)
>>> A
["a", "b", "c", "d"]

A.union(B) para unir dos conjuntos en Python

A.union(B) devuelve la unión de los conjuntos A y B. No modifica el conjunto A en su lugar, pero devuelve un nuevo conjunto.

>>> A = {4, 5, 6, 7}
>>> B = {6, 7, 8, 9}
>>> A.union(B)
{1, 2, 3, 4, 5, 6}
>>> A
{1, 2, 3, 4}

Es idéntico a A y B.

reduce(operator.or_, [A, B]) para unir dos sets en Python

operador.or_(A, B) devuelve el bitwiser or de A y B, o unión de conjuntos A y B si A y B son conjuntos.

reduce en Python 2.x o functools.reduce tanto en Python 2.x como en 3.x aplica la función a los ítems de iterable.

Por lo tanto, reduce(operador.or_, [A, B]) aplica or función a A y B. Es idéntica a la expresión de Python A | B.

>>> import operator
>>> from functools import reduce
>>> A = {4, 5, 6, 7}
>>> B = {6, 7, 8, 9}
>>> reduce(operator.or_, [A, B])
{4, 5, 6, 7, 8, 9}
Atención

reduce es la función incorporada en Python 2.x, pero está desaprobada en Python 3.

Por lo tanto, necesitamos usar functools.reduce para hacer los códigos compatibles en Python 2 y 3.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - Python Set