Diferença Simétrica entre Listas Python

Beginner

This tutorial is from open-source community. Access the source code

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:

  1. Crie um conjunto (set) a partir de cada lista.
  2. 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.
  3. 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.