En la programación Python, comparar dos listas es una tarea común con múltiples enfoques. Este artículo explora diferentes métodos para obtener la diferencia entre dos listas, mejorando su competencia en el manejo de listas y la comparación de datos en Pitón . Únase a nosotros en este viaje revelador hacia varias estrategias para discernir diferencias entre listas.
Ejemplo
Input: list1 = [10, 15, 20, 25, 30, 35, 40] list2 = [25, 40, 35] Output: [10, 15, 20, 30] Explanation: resultant list = list1 - list2>
Nota: Cuando tienes varios elementos iguales, esto no funcionará. En ese caso, este código simplemente eliminará los mismos elementos.
En ese caso, puede mantener un recuento de cada elemento en ambas listas.
Formas de comparar dos listas en Python
Hay varias formas de comparar dos listas en Python. Aquí, analizamos algunos métodos de uso general para comparar dos listas en Python que se detallan a continuación.
- Uso en método
- Usar la comprensión de listas
- Usar colocar() Función
- Usar numpy
- Usando cremallera() Función
- Cuente las ocurrencias usando Encimera
Python en palabra clave para comparar dos listas en Python
En este ejemplo, el código itera a través de los elementos de la lista 'li1' y agrega cada elemento a 'temp3' si no está presente en la lista 'li2'. El resultado final en 'temp3' contiene elementos de 'li1' que no están presentes en 'li2'.
Python3
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> temp3>=> []> for> element>in> li1:> >if> element>not> in> li2:> >temp3.append(element)> print>(temp3)> |
>
>
Producción
[10, 15, 20, 30]>
Diferencia entre dos listas en Python usando una comprensión de lista
En este ejemplo, el código crea un conjunto 's' a partir de los elementos de la lista 'li2' y luego genera una nueva lista 'temp3' que contiene elementos de la lista 'li1' que no están presentes en el conjunto 's'. Finalmente, imprime los elementos en 'temp3'.
Python3
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)> |
>
>
Producción
[10, 15, 20, 30]>
Encuentre la diferencia entre dos listas en Python usando set()
En este método, convertimos las listas en conjuntos explícitamente y luego simplemente reducimos una de la otra usando el operador de resta. Para más referencias sobre el set visita Conjuntos en Python . Es una técnica similar a la que utilizamos anteriormente. La única diferencia es que reemplazamos los bucles anidados con el comprensión de la lista sintaxis.
Python3
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)> |
>
cómo cerrar el modo desarrollador
>
Producción
[10, 15, 20, 30]>
Utilice Numpy para Comparar dos listas en Python
El numpy.concatenar() La función concatena una secuencia de matrices a lo largo de un eje existente. En este ejemplo, el código usa NumPy para crear matrices `li1` y `li2`, encuentra las diferencias establecidas entre ellas (`dif1` y `dif2`) y concatena estas diferencias en una sola lista (`temp3`), imprimiendo finalmente el resultado.
Python3
import> numpy as np> li1>=> np.array([>10>,>15>,>20>,>25>,>30>,>35>,>40>])> li2>=> np.array([>25>,>40>,>35>])> dif1>=> np.setdiff1d(li1, li2)> dif2>=> np.setdiff1d(li2, li1)> temp3>=> np.concatenate((dif1, dif2))> print>(>list>(temp3))> |
>
>
Producción
[10, 15, 20, 30]>
Compare dos listas en Python usando la función zip()
En este código de ejemplo se comparan los elementos correspondientes de dos listas, li1 y li2, y se crea una lista de valores booleanos que indican si los elementos son iguales. La función `todos` comprueba si todos los elementos de la lista de resultados son verdaderos.
Python3
li1>=> [>10>,>15>,>20>]> li2>=> [>25>,>40>,>35>]> result>=> [a>=>=> b>for> a, b>in> zip>(li1, li2)]> print>(>all>(result))> |
>
>
Producción
False>
Compare dos listas usando el conteo de ocurrencias usando el contador
En este ejemplo, el código utiliza la clase `Counter` del módulo `collections` para crear contadores de frecuencia para dos listas, `li1` y `li2`. Luego compara los contadores para comprobar si las listas tienen los mismos elementos con las mismas frecuencias, asignando el resultado a `are_lists_equal`.
Python3
from> collections>import> Counter> li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> counter1>=> Counter(li1)> counter2>=> Counter(li2)> are_lists_equal>=> counter1>=>=> counter2> print>(are_lists_equal)> |
>
>
Producción
False>