Tengo varias listas largas en python y las comparo y encuentro las listas que son iguales entre ellas, excepto los últimos elementos en ellas. ¿Cuál es la manera más rápida?Comparación de listas de Python
Respuesta
Use algo como if list1[:-1] == list2[:-1]
.
a[:-1]
es la abreviatura de "todos los elementos de a
pero el último". Si necesita que se excluya más de 1 elemento, cambie el 1 al número que necesita.
a[:-1] == b[:-1]
compararán a
y b
sin sus elementos finales.
Consulte this para obtener más información sobre rebanar.
para comparar dos listas, creo que algo así iba a evitar copiar cualquier parte de sus listas, y se detiene tan pronto como una falta de coincidencia se encuentra:
len(a)==len(b) and all(a[i] == b[i] for i in range(len(a)-1))
para encontrar todos los partidos en un conjunto arbitrario de las listas , Creo que necesitaría comparar cada par de listas, o al menos, cada par que no haya comprobado alguna versión equivalente de (por ejemplo, si A = B y B = C, no es necesario verificar A = C). No sé de un algoritmo que lo haga simple.
Alternativamente, si las listas son escandalosamente largas y quiere evitar atravesarlas, podría calcular una suma de comprobación de los primeros elementos N-1 de cada una, y luego simplemente comparar las sumas de comprobación.
¿Cómo evitaría el cálculo de una suma de comprobación atravesar las listas? – nmichaels
Si necesita comparar todas las listas entre sí, está viendo N * (N-1)/2 cruces de lista. Si calcula hashes para cada uno, solo tiene N transversals de las listas originales. Dependiendo de la cantidad de listas "varias" y de la duración de las "listas largas", ¡eso podría evitar una gran cantidad de atravesamientos! Siempre que la suma de comprobación sea lo suficientemente buena, de todos modos. – Ken
Esta respuesta podría potencialmente comparar cada elemento de una lista con otro de la misma longitud, no todos excepto el último elemento, por lo que no aborda la pregunta. – martineau
- 1. Comparación de listas de diccionarios
- 2. Comparación de dos listas con MSpec
- 3. Comparación de elementos comunes entre 2 listas
- 4. Búsqueda de Python en listas de listas
- 5. Python comparación de tiempo
- 6. Combinar listas ordenadas en Python
- 7. Python -Intersección de listas múltiples
- 8. Comparando listas masivas de diccionarios en python
- 9. Python hashes MD5 comparación
- 10. Python: comparación predeterminado
- 11. Comparación Subcadena en Python
- 12. Python Conjuntos vs Listas
- 13. Python __str__ y listas
- 14. Python: Comparando listas
- 15. operadores de comparación preferidos de Python
- 16. Listas de listas de listas
- 17. Python - eliminación de elementos de las listas
- 18. Combinación de diccionarios de listas en Python
- 19. uso apropiado de listas de comprensión - python
- 20. Coincidencia de patrones de listas en Python
- 21. Filtrado y transformación de listas de Python
- 22. iteración de varias listas de Python
- 23. Python: Singularidad de lista de listas
- 24. Python: ¿Por qué no se admite la comparación entre listas y tuplas?
- 25. Comparación del número de versión en Python
- 26. Comparación de URL canónica en Python?
- 27. La comparación de dos generadores en Python
- 28. Listas de crecimiento automático en Python
- 29. Copia de listas 2D en python
- 30. Intercalación de dos listas en Python
¿Desea excluir el último elemento de cada lista o buscar prefijos comunes? –