Como juntar dois conjuntos em Python
-
A |= B
para juntar dois conjuntos em Python -
A.update(B)
para juntar dois conjuntos em Python -
A.union(B)
para juntar dois conjuntos em Python -
reduce(operator.or_, [A, B])
para unir dois conjuntos em Python
Neste tutorial, vamos introduzir diferentes métodos para juntar dois conjuntos em Python.
A |= B
A.update(B)
A.union(B)
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}
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.
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