Rimozione duplicati di array Python
Filtra gli elementi duplicati da un elenco Python mantenendo l'ordine di inserimento originale.
Panoramica
La rimozione dei duplicati è una delle operazioni di pulizia dei dati più comuni nel software.
Trasmettere una lista a un set (`set(arr)`) rimuove i duplicati ma distrugge l'ordine degli elementi perché i set non sono ordinati.
Per rimuovere i duplicati preservando l'ordine, iteriamo attraverso l'elenco e tracciamo gli elementi visti in un set, aggiungendone di nuovi a un elenco di risultati.
Codice e output di esecuzione
Efficiente accumulatore di elementi unici che preservano l'ordine O(n).
def remove_duplicates(arr):
seen = set()
result = []
for item in arr:
if item not in seen:
seen.add(item)
result.append(item)
return result
sample_list = [1, 2, 2, 3, 4, 4, 1, 5]
print("Original:", sample_list)
print("Unique: ", remove_duplicates(sample_list))Original: [1, 2, 2, 3, 4, 4, 1, 5]
Unique: [1, 2, 3, 4, 5]Implementazione passo dopo passo
- Sanificazione della cronologia delle ricerche e dei registri dei record delle transazioni
- Preparazione dell'elenco di chiavi dati univoche per le query SQL
- Pulizia degli array per la mappatura della visualizzazione
Domande frequenti
Qual è il modo più veloce per farlo inPython 3.7+?
PoichéPython 3.7+ preserva l'ordine di inserimento del dizionario, puoi eseguire `list(dict.fromkeys(arr))` per rimuovere i duplicati mantenendo l'ordine in un unico passaggio ottimizzato.
Argomenti correlati
Esplora gli algoritmi di ordinamento di Python. Visualizza l'ordinamento a bolle e unisci l'ordinamento in modo nativo all'interno del contesto IDE del browser.
Algoritmo di ricerca binaria PythonCerca elenchi ordinati in tempo logaritmico O(log n). Esegui e comprendi la ricerca binaria in Python, inclusa la logica passo passo, i casi limite e le ottimizzazioni.