Como juntar dois conjuntos em Python

Jinku Hu 30 janeiro 2023
  1. A |= B para juntar dois conjuntos em Python
  2. A.update(B) para juntar dois conjuntos em Python
  3. A.union(B) para juntar dois conjuntos em Python
  4. reduce(operator.or_, [A, B]) para unir dois conjuntos em Python
Como juntar dois conjuntos em Python

Neste tutorial, vamos introduzir diferentes métodos para juntar dois conjuntos em Python.

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

A |= B para juntar dois conjuntos em Python

A |= B adiciona todos os elementos do array B para definir A.

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

A.update(B) para juntar dois conjuntos em Python

A.update(B) método é idêntico a A |= B. Ele modifica a opção A no lugar.

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

A.union(B) para juntar dois conjuntos em Python

A.union(B) devolve a união dos conjuntos A e B. Ele não modifica o array A no lugar, mas retorna um novo array.

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

É idêntico a A | B.

reduce(operator.or_, [A, B]) para unir dois conjuntos em Python

O operator.or_(A, B) devolve o bitwiser or de A e B, ou união de conjuntos A e B se A e B são arrays.

reduce em Python 2.x ou functools.reduce em Python 2.x e 3.x aplica a função aos itens do iterável.

Portanto, reduce(operator.or_, [A, B]) aplica a função ou a A e B. É idêntica à expressão 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}
Atenção

reduce é a função incorporada em Python 2.x, mas é depreciada em Python 3.

Portanto, precisamos utilizar functools.reduce para tornar os códigos compatíveis em Python 2 e 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

Artigo relacionado - Python Set