Introdução
Em Python, a diferença simétrica (symmetric difference) entre dois conjuntos é o conjunto de elementos que estão em qualquer um dos conjuntos, mas não na sua intersecção. Neste desafio, você escreverá uma função que recebe duas listas como entrada e retorna a sua diferença simétrica.
Diferença Simétrica (Symmetric Difference)
Escreva uma função symmetric_difference(a, b) que recebe duas listas como argumentos e retorna a sua diferença simétrica como uma lista. A função não deve filtrar valores duplicados.
Para resolver este problema, você pode seguir estes passos:
- Crie um conjunto (set) a partir de cada lista.
- Use uma compreensão de lista (list comprehension) em cada uma delas para manter apenas os valores que não estão contidos no conjunto criado anteriormente da outra.
- Concatene as duas listas obtidas no passo 2.
def symmetric_difference(a, b):
(_a, _b) = (set(a), set(b))
return [item for item in a if item not in _b] + [item for item in b
if item not in _a]
symmetric_difference([1, 2, 3], [1, 2, 4]) ## [3, 4]
Resumo
Neste desafio, você aprendeu como encontrar a diferença simétrica (symmetric difference) entre duas listas em Python. Você também aprendeu como usar conjuntos (sets) e compreensões de lista (list comprehensions) para resolver este problema.