Aquest article se centra en una de les operacions per obtenir una llista única d'una llista que conté un possible duplicat. L'eliminació de duplicats de l'operació de la llista té un gran nombre d'aplicacions i, per tant, el seu coneixement és bo tenir-hi Python.
urfi javed
Maneres d'eliminar duplicats de la llista:
A continuació es mostren els mètodes que tractarem en aquest article:
- Utilitzant mètode set().
- Utilitzant comprensió de llista
- Utilitzar la comprensió de llistes amb enumerar()
- Utilitzant collections.OrderedDict.fromkeys()
- S'utilitza dins, no dins operadors
- Utilitzant comprensió de llista i el mètode Array.index().
- Utilitzant Mètode Counter().
- Utilitzant Mètode únic Numpy
- Utilitzant a Pandas DataFrame
Elimina els duplicats de la llista mitjançant el mètode set().
Aquesta és la forma més popular per eliminar els duplicats de la llista mètode set(). . Però el principal i notable inconvenient d'aquest enfocament és que l'ordenació de l'element es perd en aquest mètode particular.
Python 3
# initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '> >+> str>(test_list))> # using set() to remove duplicated from list> test_list>=> list>(>set>(test_list))> # printing list after removal> # distorted ordering> print> (>'The list after removing duplicates : '> >+> str>(test_list))> |
>
>Sortida
The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 3, 5, 6]>
Complexitat temporal: O(n)
Complexitat espacial: O(n)
Elimina els duplicats de la llista mitjançant la comprensió de la llista
Aquest mètode funciona de manera similar al mètode anterior, però això és només una abreviatura d'un mètode més llarg fet amb l'ajuda de comprensió de llista. ordre
Python 3
# initializing list> test_list>=> [>1>,>3>,>5>,>6>,>3>,>5>,>6>,>1>]> print>(>'The original list is : '> >+> str>(test_list))> # using list comprehension to remove duplicated from list> res>=> []> [res.append(x)>for> x>in> test_list>if> x>not> in> res]> # printing list after removal> print> (>'The list after removing duplicates : '> >+> str>(res))> |
>
>Sortida
The original list is : [1, 3, 5, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 3, 5, 6]>
Complexitat temporal: O(n)
Complexitat espacial: O(n)
Elimina els duplicats de la llista mitjançant la comprensió de la llista amb enumerate()
El comprensió de llista juntament amb funció d'enumeració també pot aconseguir aquesta tasca. Bàsicament busca elements que ja s'han produït i omet afegir-los. Conserva l'ordre de la llista.
Python 3
# initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '> >+> str>(test_list))> # using list comprehension + enumerate() to remove duplicated from list> res>=> [i>for> n, i>in> enumerate>(test_list)>if> i>not> in> test_list[:n]]> # printing list after removal> print> (>'The list after removing duplicates : '> >+> str>(res))> |
>
>Sortida
The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 5, 3, 6]>
Complexitat temporal: O(n^2)
Complexitat espacial: O(n)
Elimina els duplicats de la llista a Python mitjançant collections.OrderedDict.fromkeys()
Aquest és el mètode més ràpid per aconseguir una tasca determinada. Primer elimina els duplicats i retorna un diccionari que s'ha de convertir en una llista. Això també funciona bé en el cas de les cordes.
Python 3
# using collections.OrderedDict.fromkeys()> from> collections>import> OrderedDict> # initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '> >+> str>(test_list))> # using collections.OrderedDict.fromkeys() to remove duplicated from list> res>=> list>(OrderedDict.fromkeys(test_list))> # printing list after removal> print> (>'The list after removing duplicates : '> >+> str>(res))> |
>
>Sortida
The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 5, 3, 6]>
Complexitat temporal: O(n)
Complexitat espacial: O(n)
Elimineu els duplicats de la llista mitjançant els operadors in, no in
En això, iterem per la llista i mantenim una llista corresponent amb ella que conté l'element de la llista d'entrada i abans d'afegir el nou element a la llista corresponent comprovem si l'element ja existeix o no a la llista corresponent i d'aquesta manera podem eliminar el duplicat de la llista d'entrada.
Python 3
quants anys té Pete Davidson
# initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print>(>'The original list is : '> +> str>(test_list))> res>=> []> for> i>in> test_list:> >if> i>not> in> res:> >res.append(i)> # printing list after removal> print>(>'The list after removing duplicates : '> +> str>(res))> |
>
>Sortida
The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 5, 3, 6]>
Complexitat temporal: O(n^2)
Complexitat espacial: O(n)
Elimina els duplicats de la llista utilitzant comprensió de llista i mètode Array.index().
En aquest mètode, utilitzem la comprensió de llista per iterar sobre la llista i la indexació de matrius per obtenir l'element d'una matriu. Afegim els elements a la matriu només si el primer índex d'un element de la matriu coincideix amb l'índex actual de l'element o, en cas contrari, ignora l'element.
Python
# initializing list> arr>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '>+> str>(arr))> # using list comprehension + arr.index()> res>=> [arr[i]>for> i>in> range>(>len>(arr))>if> i>=>=> arr.index(arr[i]) ]> # printing list after removal of duplicate> print>(>'The list after removing duplicates :'> >,res)> |
>
>Sortida
The original list is : [1, 5, 3, 6, 3, 5, 6, 1] ('The list after removing duplicates :', [1, 5, 3, 6])> Complexitat temporal: O(n^2)
Complexitat espacial: O(n)
Elimineu els duplicats de la llista amb el o Mètode Counter().
En aquest mètode, fem servir el Mètode Counter(). fer un diccionari a partir d'una matriu determinada. Ara recupera totes les claus utilitzant claus() mètode que només dóna valors únics de la llista anterior.
Python 3
com generar un nombre aleatori en java
from> collections>import> Counter> # initializing list> arr>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '>+> str>(arr))> # using Counter() + keys() to remove duplicated from list> temp>=> Counter(arr)> res>=> [>*>temp]> # printing list after removal of duplicate> print>(>'The list after removing duplicates :'> >,res)> |
>
>Sortida
The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 5, 3, 6]>
Complexitat temporal: O(n)
Complexitat espacial: O(n)
Elimineu els duplicats de la llista mitjançant el mètode numpy únic
Aquest mètode s'utilitza quan la llista conté elements del mateix tipus i s'utilitza per eliminar els duplicats de la llista. Primer converteix la llista en a matriu numpy i després utilitza el mètode numpy unique(). per eliminar tots els elements duplicats de la llista.
Nota: instal·leu el mòdul numpy mitjançant l'ordre pip install numpy duplicar
Python 3
# initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print> (>'The original list is : '> >+> str>(test_list))> > # using numpy> import> numpy as np> > # removing duplicated from list> res>=> np.unique(test_list)> > # printing list after removal> print> (>'The list after removing duplicates : '> >+> str>(res))> |
>
>
Sortida
The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1 3 5 6]>
Complexitat temporal: O(n)
Complexitat espacial: O(n)
Ús de marc de dades pandas
El pandas.DataFrame.drop_duplicates() El mètode també es pot utilitzar per eliminar duplicats d'una llista. El mètode retorna un nou DataFrame amb els duplicats eliminats i les dades originals del marc de dades marc roman sense canvis.
Algorisme:
Creeu un marc de dades pandas amb la llista. Utilitzeu el mètode drop_duplicates() al DataFram i després convertiu el DataFrame resultant en una llista.
Python 3
import> pandas as pd> # initializing list> test_list>=> [>1>,>5>,>3>,>6>,>3>,>5>,>6>,>1>]> print>(>'The original list is : '> +> str>(test_list))> # creating DataFrame> df>=> pd.DataFrame({>'col'>: test_list})> # using drop_duplicates() method> df.drop_duplicates(inplace>=>True>)> # converting back to list> res>=> df[>'col'>].tolist()> # printing list after removal> print>(>'The list after removing duplicates : '> +> str>(res))> |
>
>
Sortida:
The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1 , 5 , 3, 6]>
Complexitat temporal: La complexitat temporal del mètode drop_duplicates() és O(n log n) ja que ordena els valors abans d'eliminar els duplicats. La conversió de DataFrame a una llista triga O(n) temps. Per tant, la complexitat temporal global d'aquest mètode és O(n log n).
Complexitat espacial: La complexitat espacial d'aquest mètode és O(n) perquè es creen un nou DataFrame i una llista, cadascun amb n elements.