Diferencia simétrica entre listas de Python

Beginner

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

Introducción

En Python, la diferencia simétrica entre dos conjuntos es el conjunto de elementos que se encuentran en cualquiera de los conjuntos, pero no en su intersección. En este desafío, escribirás una función que tome dos listas como entrada y devuelva su diferencia simétrica.

Diferencia simétrica

Escribe una función symmetric_difference(a, b) que tome dos listas como argumentos y devuelva su diferencia simétrica como una lista. La función no debe filtrar los valores duplicados.

Para resolver este problema, puedes seguir estos pasos:

  1. Crea un conjunto a partir de cada lista.
  2. Utiliza una comprensión de lista en cada una de ellas para conservar solo los valores no contenidos en el conjunto previamente creado de la otra.
  3. Concatena las dos listas obtenidas en el paso 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]

Resumen

En este desafío, has aprendido cómo encontrar la diferencia simétrica entre dos listas en Python. También has aprendido cómo utilizar conjuntos y comprensiones de listas para resolver este problema.