Come rimuovere i duplicati da un elenco in Python
โก Riepilogo intelligente
Rimozione dei duplicati da un Python La creazione di liste puรฒ essere realizzata con diversi approcci integrati, tra cui set(), dict.fromkeys(), cicli, list comprehension e metodi di libreria di NumPy e Pandas, ognuno dei quali bilancia la conservazione dell'ordine con la velocitร .

Python rimuovere i duplicati da un elenco
Una lista รจ un contenitore che contiene diversi Python oggetti, che potrebbero essere numeri interi, parole, valori, ecc. ร l'equivalente di un array in altri linguaggi di programmazione.
Quindi qui esamineremo diversi modi in cui possiamo rimuovere i duplicati da un dato elenco in Python.
Metodo 1) Rimuovi i duplicati dall'elenco utilizzando Set
Per rimuovere i duplicati da un elenco, รจ possibile utilizzare la funzione integrata set(). La particolaritร del metodo set() รจ che restituisce elementi distinti.
Abbiamo una lista: [1,1,2,3,2,2,4,5,6,2,1]. La lista contiene molti duplicati che dobbiamo rimuovere per ottenere solo gli elementi distinti. La lista viene passata alla funzione integrata set(). Later L'elenco finale viene visualizzato utilizzando la funzione integrata list().
L'output che otteniamo รจ costituito da elementi distinti, dai quali vengono eliminati tutti gli elementi duplicati.
Esempio
my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))
Produzione:
[1, 2, 3, 4, 5, 6]
Metodo 2) Utilizzo dell'elenco temporaneo
Per rimuovere i duplicati da un elenco, รจ possibile utilizzare un elenco temporaneo vuoto. A tal fine, รจ necessario innanzitutto scorrere l'elenco contenente i duplicati e aggiungere gli elementi univoci all'elenco temporaneo. Later l'elenco temporaneo viene assegnato all'elenco principale.
Esempio
Ecco un esempio funzionante che utilizza un elenco temporaneo.
my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2] print("List Before ", my_list) temp_list = [] for i in my_list: if i not in temp_list: temp_list.append(i) my_list = temp_list print("List After removing duplicates ", my_list)
Produzione:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
Metodo 3) Utilizzando Dict
Possiamo rimuovere i duplicati dall'elenco dato importando OrderedDict dalla libreria collections. ร disponibile da Python 2.7 in poi. OrderedDict si occupa di restituire gli elementi distinti nell'ordine in cui la chiave รจ presente.
Utilizziamo una lista e il metodo fromkeys() disponibile in OrderedDict per ottenere gli elementi univoci dalla lista.
Per utilizzare il metodo OrderedDict.fromkeys(), รจ necessario importare OrderedDict da collections, come mostrato di seguito:
from collections import OrderedDict
Ecco un esempio di come rimuovere i duplicati utilizzando il metodo OrderedDict.fromkeys().
Esempio
from collections import OrderedDict my_list = ['a','x','a','y','a','b','b','c'] my_final_list = OrderedDict.fromkeys(my_list) print(list(my_final_list))
Produzione:
['a', 'x', 'y', 'b', 'c']
Da Python Dalla versione 3.5 in poi, possiamo utilizzare il metodo standard dict.fromkeys() per ottenere gli elementi distinti dall'elenco. Il metodo dict.fromkeys() restituisce chiavi univoche e aiuta a eliminare i valori duplicati.
Ecco un esempio che mostra il funzionamento di dict.fromkeys() su una lista per ottenere gli elementi univoci:
Esempio
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
Produzione:
['a', 'x', 'y', 'b', 'c']
Metodo 4) Utilizzo del ciclo for
utilizzando ciclo for, esamineremo l'elenco degli elementi per rimuovere i duplicati.
Innanzitutto, inizializza l'array a vuoto, ovvero `myFinallist = []`. All'interno del ciclo `for`, aggiungi un controllo per verificare se gli elementi della lista esistono nell'array `myFinallist`. Se gli elementi non esistono, aggiungili all'array `myFinallist` utilizzando il metodo `append()`.
Pertanto, ogni volta che viene rilevato un elemento duplicato, questo sarร giร presente nell'array myFinallist e non verrร inserito. Verifichiamolo ora nell'esempio seguente:
Esempio
my_list = [1,2,2,3,1,4,5,1,2,6] myFinallist = [] for i in my_list: if i not in myFinallist: myFinallist.append(i) print(list(myFinallist))
Produzione:
[1, 2, 3, 4, 5, 6]
Metodo 5) Utilizzo della comprensione delle liste
Le comprensioni dell'elenco lo sono Python funzioni utilizzate per creare nuove sequenze (come elenchi, dizionari, ecc.) utilizzando sequenze giร create. Ciรฒ ti aiuta a ridurre i cicli piรน lunghi e a rendere il tuo codice piรน facile da leggere e gestire.
Usiamo la comprensione delle liste per rimuovere i duplicati dalla lista fornita.
Esempio
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [] [my_finallist.append(n) for n in my_list if n not in my_finallist] print(my_finallist)
Produzione:
[1, 2, 3, 4, 5, 6]
Metodo 6) Utilizzo del metodo unique() di NumPy
Il metodo unique() del modulo NumPy puรฒ aiutarci a rimuovere i duplicati dall'elenco fornito.
Per lavorare con NumPy, รจ necessario innanzitutto importare il modulo numpy:
Passo 1) Importa il modulo NumPy
import numpy as np
Passo 2) Utilizza la tua lista con duplicati all'interno del metodo unique(). L'output viene riconvertito in una lista utilizzando il metodo tolist().
myFinalList = np.unique(my_list).tolist()
Passo 3) Infine, stampa l'elenco:
print(myFinalList)
Il codice finale con output รจ il seguente:
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
Produzione:
[1, 2, 3, 4, 5, 6]
Metodo 7) Utilizzo dei metodi Pandas
Il modulo Pandas ha un metodo unique() che ci fornirร gli elementi univoci dall'elenco fornito.
Per lavorare con il modulo Pandas:
Passo 1) Importa il modulo Panda
import pandas as pd
Passo 2) Utilizza la tua lista con i duplicati all'interno del metodo unique():
myFinalList = pd.unique(my_list).tolist()
Passo 3) Stampa l'elenco:
print(myFinalList)
Il codice finale con output รจ il seguente:
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
Produzione:
[1, 2, 3, 4, 5, 6]
Metodo 8) Utilizzo di enumerate() e di comprensione delle liste
Qui utilizziamo la combinazione di list comprehension e enumerate() per rimuovere gli elementi duplicati. Enumerate restituisce un oggetto con un contatore per ogni elemento della lista. Ad esempio (0,1), (1,2) ecc. In questo caso, il primo valore รจ l'indice e il secondo valore รจ l'elemento della lista.
Ciascun elemento viene controllato per verificare se รจ giร presente nell'elenco e, in caso affermativo, viene rimosso dall'elenco.
Esempio
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] print(list(my_finallist))
Produzione:
[1, 2, 3, 4, 5, 6]
