Obtenga la diferencia entre dos listas en Python

Lakshay Kapoor 30 enero 2023
  1. Utilice set.difference() para encontrar la diferencia entre dos listas en Python
  2. Utilice set.symmetric_difference() para encontrar la diferencia entre dos listas en Python
  3. Utilice la palabra clave in para encontrar la diferencia entre las dos listas en Python
  4. Utilice la biblioteca NumPy para encontrar la diferencia entre dos listas en Python
Obtenga la diferencia entre dos listas en Python

Se realizan muchas operaciones en estructuras de datos como listas, diccionarios, tuplas y matrices. En Python, estas estructuras de datos se utilizan en casi todos los programas. Una de estas estructuras de datos son las listas en Python. Las listas en la programación de Python ayudan a almacenar más de un elemento en una sola variable. Descubrir la diferencia entre dos listas es una tarea muy común que realizan casi todos los programadores.

Este tutorial demostrará varias formas de obtener la diferencia entre dos listas en Python.

Utilice set.difference() para encontrar la diferencia entre dos listas en Python

El método set() ayuda al usuario a convertir cualquier iterable en una secuencia iterable, que también se denomina conjunto. Los iterables pueden ser una lista, un diccionario o una tupla.

La función set.difference() se utiliza para devolver la diferencia entre los dos conjuntos. Esta función básicamente elimina los elementos comunes en dos conjuntos.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

difference_1 = set(list_1).difference(set(list_2))
difference_2 = set(list_2).difference(set(list_1))

list_difference = list(difference_1.union(difference_2))
print(list_difference)

Producción :

[50, 5, 40, 25, 60, 15]

Para este método, el primer paso es almacenar las dos listas en dos variables. La función set() se utiliza para convertir estas listas en conjuntos. En el mismo paso, la función set.difference() se utiliza para encontrar la diferencia entre los dos conjuntos. Tenga en cuenta que la variable difference_1 obtiene los elementos de list_1 y no de list_2.

La variable difference_2 obtiene los elementos que están en list_2 y no en list_1. Después de eso, la función union se utiliza para obtener todos los elementos de las variables difference_1 y difference_2. Además, la función list() se utiliza para convertir ambos conjuntos en listas nuevamente. Finalmente, se imprime la lista resultante.

Utilice set.symmetric_difference() para encontrar la diferencia entre dos listas en Python

Aquí, el método set() se utiliza para convertir ambas listas en conjuntos inicialmente.

El método symmetric_difference() se utiliza para devolver los elementos que están en el primer conjunto o en el segundo conjunto. Este método no devuelve la intersección como los elementos comunes de los dos conjuntos.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

set_difference = set(list_1).symmetric_difference(set(list_2))
list_difference = list(set_difference)

print(list_difference)

Producción :

[5, 40, 15, 50, 25, 60]

El método set() también se utiliza para convertir listas en conjuntos. Después de obtener la diferencia, la función list() se usa para obtener y convertir el conjunto final, como convertir set_difference nuevamente en una lista.

Utilice la palabra clave in para encontrar la diferencia entre las dos listas en Python

La palabra clave in ayuda a comprobar si un elemento está presente en una secuencia iterable como una lista o no.

La función append() también se utiliza en este método. append() se usa para agregar elementos a una lista existente; no crea una nueva lista, pero modifica la lista inicial añadiéndole elementos.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

list_difference = []
for element in list_1:
    if element not in list_2:
        list_difference.append(element)

print(list_difference)

Producción :

[5, 15, 25]

En este método, primero inicializamos la lista final que debe imprimirse con cero elementos. Luego usamos un bucle for para comenzar la iteración con la primera lista, que es list_1. Después de eso, usamos la palabra clave not in para verificar si un elemento está en la segunda lista o no.

Finalmente, usamos el método append() para agregar los elementos que no están en la segunda lista a la lista inicial, es decir, list_difference. Sin embargo, el inconveniente de este método es que no devuelve los elementos de la segunda lista.

Para simplificar este método, utilice comprensión de listas. La comprensión de lista es un método que ayuda a crear una nueva lista con los elementos de una lista existente.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

list_difference = [element for element in list_1 if element not in list_2]

print(list_difference)

Producción :

[5, 15, 25]

Utilice la biblioteca NumPy para encontrar la diferencia entre dos listas en Python

La biblioteca NumPy de Python es una biblioteca de uso muy común. Esta biblioteca ayuda al usuario a realizar tareas en matrices, matrices y álgebra lineal.

En este método, se utilizan tres funciones de la biblioteca NumPy para obtener la diferencia entre dos listas. Estas tres funciones son np.array(), np.setdiff1d() y np.concatenate().

un array es la estructura de datos principal de la biblioteca NumPy. La función np.array() le ayuda a crear un array y le ayuda a trabajar con ellos.

La función np.setdiff1d() le ayuda a encontrar la diferencia de conjuntos entre dos matrices y devolver los valores que están en la primera matriz y no en la segunda matriz.

La función np.concatenate se utiliza para combinar dos o más matrices NumPy juntas. Mira el ejemplo a continuación:

import numpy as np

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

array_1 = np.array(list_1)
array_2 = np.array(list_2)

difference_1 = np.setdiff1d(array_1, array_2)
difference_2 = np.setdiff1d(array_2, array_1)

list_difference = np.concatenate((difference_1, difference_2))
print(list(list_difference))

Producción :

[5, 15, 25, 40, 50, 60]
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

Artículo relacionado - Python List