Come rimuovere i duplicati da un elenco in Python
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 determinato elenco in Python.
Metodo 1) Rimuovi i duplicati dall'elenco utilizzando Set
Per rimuovere i duplicati da un elenco, puoi utilizzare la funzione integrata set()
. La specialità del metodo set() è che restituisce elementi distinti.
Abbiamo una lista: [1,1,2,3,2,2,4,5,6,2,1]. L'elenco contiene molti duplicati che dobbiamo rimuovere e recuperare solo gli elementi distinti. L'elenco è consegnato al set()
funzione incorporata. Later l'elenco finale viene visualizzato utilizzando il list()
funzione incorporata, come mostrato nell'esempio seguente.
L'output che otteniamo sono elementi distinti in cui tutti gli elementi duplicati vengono eliminati.
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 dato list
, puoi utilizzare un elenco temporaneo vuoto. Per prima cosa, dovrai scorrere l'elenco con duplicati e aggiungere gli elementi univoci all'elenco temporaneo. Later l'elenco temporaneo viene assegnato all'elenco principale.
Esempio
Ecco un esempio funzionante utilizzando l'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 fornito importando OrderedDict
dalle collezioni. È disponibile da Python2.7 in poi. OrderedDict si occupa di restituirti gli elementi distinti nell'ordine in cui è presente la chiave.
Utilizziamo un elenco e usiamo fromkeys()
metodo disponibile in OrderedDict per ottenere gli elementi univoci dall'elenco.
Per utilizzare OrderedDict.fromkey()
metodo, devi importare OrderedDict dalle raccolte, come mostrato di seguito:
from collections import OrderedDict
Ecco un esempio per rimuovere i duplicati utilizzando OrderedDict.fromkeys()
metodo.
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 3.5+ in poi, possiamo utilizzare la versione normale dict.fromkeys()
per ottenere gli elementi distinti dall'elenco. IL dict.fromkeys()
metodi restituiscono chiavi univoche e aiutano a eliminare i valori duplicati.
Un esempio che mostra il funzionamento di dict.fromkeys()
in un elenco per fornire gli elementi univoci è il seguente:
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.
Per prima cosa inizializza l'array per svuotarlo, ad es myFinallist = []
.All'interno del ciclo for, aggiungi controlla se gli elementi nell'elenco esistono nell'array myFinallist
. Se gli elementi non esistono, aggiungi l'elemento all'array myFinallist utilizzando il file append()
metodo.
Quindi ogni volta che viene incontrato l'elemento duplicato sarà già presente nell'array myFinallist e non verrà inserito. Controlliamo ora lo stesso 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 Numpy unique().
Il metodo unique()
dal modulo Numpy può aiutarci a rimuovere i duplicati dall'elenco fornito.
Per lavorare con Numpy prima importa il modulo Numpy, devi seguire questi passaggi:
Passo 1 ) Importa il modulo Numpy
import numpy as np
Passo 2) Utilizza il tuo elenco con duplicati all'interno del metodo univoco come mostrato di seguito. L'output viene riconvertito in un formato elenco utilizzando tolist()
metodo.
myFinalList = np.unique(my_list).tolist()
Passo 3) Infine stampa l'elenco come mostrato di seguito:
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 file unique()
metodo che ci fornirà gli elementi univoci dall'elenco fornito.
Per lavorare con il modulo Pandas, devi seguire questi passaggi:
Passo 1) Importa il modulo Panda
import pandas as pd
Passo 2) Usa la tua lista con i duplicati all'interno unique()
metodo come mostrato di seguito:
myFinalList = pd.unique(my_list).tolist()
Passo 3) Stampa l'elenco come mostrato di seguito:
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
Ecco la combinazione di comprensione delle liste ed enumerazione per rimuovere gli elementi duplicati. Enumerate restituisce un oggetto con un contatore per ciascun elemento nell'elenco. Ad esempio (0,1), (1,2) ecc. Qui il primo valore è l'indice e il secondo valore è l'elemento dell'elenco. W
Ogni elemento viene controllato se esiste nell'elenco e, in tal caso, 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]
Sommario
- Per rimuovere i duplicati da un elenco, puoi utilizzare la funzione integrata
set()
. La specialità delset()
Il metodo è che restituisce elementi distinti. - Puoi rimuovere i duplicati dall'elenco fornito importando
OrderedDictfrom
collezioni. È disponibile da Python2.7 in poi.OrderedDictdict
si occupa di restituirvi gli elementi distinti nell'ordine in cui è presente la chiave. - Puoi utilizzare un ciclo for che attraverseremo l'elenco degli elementi per rimuovere i duplicati.
- Il metodo
unique()
dal modulo Numpy può aiutarci a rimuovere i duplicati dall'elenco fornito. - Il modulo Pandas ha un file
unique()
metodo che ci fornirà gli elementi univoci dall'elenco fornito. - La combinazione di comprensione dell'elenco ed enumerazione viene utilizzata per rimuovere gli elementi duplicati dall'elenco. Enumerate restituisce un oggetto con un contatore per ciascun elemento nell'elenco.