Cómo comparar números en una lista en python

El método que he presentado además de preservar el orden es también (ligeramente) más rápido que la sustracción de conjuntos porque no requiere la construcción de un conjunto innecesario. La diferencia de rendimiento sería más notable si la primera lista es considerablemente más larga que la segunda y si el hashing es caro. Aquí hay una segunda prueba que demuestra esto:

Usando la función anterior, la diferencia se puede encontrar usando diff(temp2, temp1) o diff(temp1, temp2). Ambos darán el resultado [‘Cuatro’, ‘Tres’]. No tienes que preocuparte por el orden de la lista o por qué lista se debe dar primero.

Quería algo que tomara dos listas y que pudiera hacer lo que hace diff en bash. Ya que esta pregunta aparece primero cuando se busca “python diff dos listas” y no es muy específica, voy a publicar lo que se me ocurrió.

Usando SequenceMather de difflib puedes comparar dos listas como lo hace diff. Ninguna de las otras respuestas te dice la posición en la que se produce la diferencia, pero ésta sí. Algunas respuestas dan la diferencia en una sola dirección. Algunas reordenan los elementos. Algunas no manejan los duplicados. Pero esta solución te da la verdadera diferencia entre dos listas:

Python compara dos listas

La forma en que nos han enseñado a comparar dos objetos en Python es un poco engañosa. La mayoría de los libros y tutoriales enseñan a comparar objetos utilizando el operador == o el operador is. En realidad, estos dos operadores cubren sólo una pequeña fracción de los casos de uso más frecuentes.

leer  Condicional ternario python

Claramente, la aritmética de punto flotante tiene sus limitaciones, y a veces queremos comparar dos listas pero ignorando los errores de precisión, o incluso definir alguna tolerancia. Para casos como éste, el operador == no será suficiente.

También es posible que quieras comparar las listas y devolver las coincidencias. O tal vez comparar las dos listas y devolver las diferencias. O quizás quiera comparar dos listas ignorando los duplicados, o comparar una lista de diccionarios en Python.

En la sección anterior, vimos que la aritmética de punto flotante puede causar errores de precisión. Si tenemos una lista de flotantes y queremos compararla con otra lista, lo más probable es que el operador == no nos sirva.

Afortunadamente no tenemos que reinventar la rueda. Como mostré en el artículo “cómo comparar dos dicts”, podemos utilizar una biblioteca llamada deepdiff para ello. Esta biblioteca soporta diferentes tipos de objetos y las listas son uno de ellos.

Python une dos listas

Respuesta corta: La forma más pitónica de comprobar si dos listas ordenadas l1 y l2 son idénticas, es utilizar el operador l1 == l2 para comparar elementos. Si todos los elementos son iguales y la longitud de las listas es la misma, el valor de retorno es True.

Problema: Se dan dos listas l1 y l2. Se desea realizar una comparación booleana: Comparar las listas elemento a elemento y devolver True si su métrica de comparación devuelve True para todos los pares de elementos, y en caso contrario False.

En el código, se itera sobre todos los índices desde 0 hasta la última posición de la lista más pequeña determinada por la parte min(len(l1), len(l2)). A continuación, se comprueba si los dos elementos en la misma posición son diferentes. Si son diferentes, es decir, l1[i] != l2[i], puedes devolver inmediatamente False porque las listas también son diferentes.

leer  Compilar python

Si has pasado por todo el bucle sin devolver False, los elementos de la lista son similares. Pero una de las listas puede seguir siendo más larga. Así, devolviendo len(l1) == len(l2), te aseguras de devolver True sólo si (1) todos los elementos son iguales y (2) las listas tienen la misma longitud.

Python si en la lista

Al trabajar con listas en Python, es posible que te encuentres con dos listas que parecen similares. Para averiguar la diferencia, tienes que comparar los datos de ambas listas. Puedes hacerlo utilizando los métodos set(), difference() y sort().

La función set() en Python utiliza para tomar un argumento y convertirlo en un objeto set. Puede tomar argumentos como listas, tuplas y diccionarios. El argumento se llama iterable. La salida de los elementos podría no estar en el mismo orden porque los elementos pasados como lista no estaban en orden.

En el siguiente ejemplo, primero convertimos una lista en un conjunto utilizando la función set(), luego tenemos que diferenciar entre estos dos conjuntos utilizando la función difference() y utilizar la condición if() para comprobar el valor de retorno.

La función cmp() es un método incorporado en Python que se utiliza para comparar los elementos de dos listas. La función también se utiliza para comparar dos elementos y devolver un valor basado en los argumentos pasados. Este valor puede ser 1, 0 o -1.

Por avivcas