Ho parecchie liste lunghe in python e li ho confrontati e trovo gli elenchi uguali tra loro tranne gli ultimi elementi in essi. Qual è il modo più veloce?Confronto degli elenchi Python
risposta
Utilizzare qualcosa come if list1[:-1] == list2[:-1]
.
a[:-1]
è una scorciatoia per "tutti gli elementi di a
ma l'ultimo". Se è necessario escludere più di 1 elemento, modificare il numero 1 nel numero necessario.
a[:-1] == b[:-1]
confronterà a
e b
senza i loro elementi finali.
Vedere this per ulteriori informazioni sull'affettatura.
per confrontare due liste, penso che qualcosa di simile sarebbe evitare di copiare qualsiasi parte del vostre liste, e si ferma non appena una mancata corrispondenza viene trovato:
len(a)==len(b) and all(a[i] == b[i] for i in range(len(a)-1))
trovare tutte le partite in un insieme arbitrario di liste , Penso che avresti bisogno di confrontare ogni coppia di liste - o almeno, ogni coppia che non hai controllato una versione equivalente di (ad esempio, se A = B e B = C, non è necessario controllare A = C). Non so a priori un algoritmo che renda questo semplice.
In alternativa, se le liste sono scandalosamente lunghe e si desidera evitare di attraversarle, è possibile calcolare un checksum dei primi elementi N-1 di ciascuno, quindi confrontare i checksum.
In che modo calcolare un checksum evita di attraversare gli elenchi? – nmichaels
Se è necessario confrontare ogni elenco con gli altri, si osservano gli attraversamenti di elenchi N * (N-1)/2. Se calcoli gli hash per ognuno, hai solo N traversali degli elenchi originali. A seconda del numero di elenchi "diversi" e di quanto sono lunghi gli "elenchi lunghi", ciò potrebbe evitare un sacco di attraversamenti! A condizione che il checksum sia abbastanza buono, comunque. – Ken
Questa risposta potrebbe potenzialmente confrontare ogni elemento di un elenco con un altro della stessa lunghezza, non tutti tranne l'ultimo elemento, quindi non affronta la domanda. – martineau
- 1. Python: confronto degli elenchi
- 2. Operatori di disuguaglianza Python; confronto degli elenchi
- 3. Confronto degli elenchi in Lisp
- 4. Confronto degli elenchi di dizionari
- 5. Python - dizionario degli elenchi
- 6. Funzioni Python all'interno degli elenchi
- 7. Confronto di due elenchi in Python
- 8. Comprensione degli elenchi Python: test function return
- 9. Comprensione degli elenchi per i loop Python
- 10. confronto di elenchi Scala con elenchi Java
- 11. confronto l'overloading degli operatori
- 12. Perché utilizzare un set per il confronto di elenchi?
- 13. Gestione delle eccezioni Python nella comprensione degli elenchi
- 14. Perché i set sono più grandi degli elenchi in python?
- 15. Comprensione degli elenchi Python - accedi all'ultimo elemento creato?
- 16. Python: come impostare la variabile locale nella comprensione degli elenchi?
- 17. Python - emula sum() utilizzando la comprensione degli elenchi
- 18. Errore di scope di comprensione degli elenchi dal debugger Python
- 19. Cosa rende i set più veloci degli elenchi in python?
- 20. Python: combinazione in elenchi di elenchi (?)
- 21. Vantaggi degli elenchi di inizializzazione
- 22. Python - confronto degli elementi della lista con elementi "vicini"
- 23. come ottenere tuple dagli elenchi utilizzando la comprensione degli elenchi in python
- 24. Confronto di elenchi comparabili in Kotlin
- 25. Deep-reverse degli elenchi nidificati in Scala
- 26. Complessità degli operatori di confronto
- 27. Confronto degli array nel chai
- 28. Ricerca Python negli elenchi di elenchi
- 29. Confronto di 2 elenchi composti da dizionari con chiavi univoche in python
- 30. Elenchi nidificati python
Vuoi escludere l'ultimo elemento di ogni elenco o cercare prefissi comuni? –