logo

Python | Obteniu valors únics d'una llista

En aquest article, explorarem diverses tècniques i estratègies per extreure de manera eficient diferents elements d'una llista determinada. Aprofundint en mètodes que van des de bucles tradicionals fins a enfocaments moderns de Pythonic Python.

  Input : [  1,2, 1, 1, 3, 4, 3, 3, 5 ]   Output :   [1, 2, 3, 4, 5]    Explaination:   The output only contains the unique element from the input list.>

Obteniu valors únics d'una llista

A continuació es mostren els temes que tractarem en aquest article:



  • Travessa de la llista
  • Utilitzant Conjunt mètode
  • Utilitzant funció reduir().
  • Utilitzant Operator.countOf() mètode
  • Utilitzant mòdul pandas
  • Utilitzant numpy.únic
  • Utilitzant col·leccions.Comptador()
  • Utilitzant dict.fromkeys()

Obteniu valors únics d'una llista per Traversal of the List

Mitjançant el recorregut, podem recórrer cada element de la llista i comprovar si l'element ja està a la llista_única si no hi és, llavors podem afegir-lo a la llista_única. Això es fa utilitzant un per bucle i una altra instrucció if que comprova si el valor és a la llista única o no, que és equivalent a una altra per a un bucle.

Python 3






Edith Mack Hirsch



# function to get unique values> def> unique(list1):> ># initialize a null list> >unique_list>=> []> ># traverse for all elements> >for> x>in> list1:> ># check if exists in unique_list or not> >if> x>not> in> unique_list:> >unique_list.append(x)> ># print list> >for> x>in> unique_list:> >print> x,> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortida

the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>

Complexitat temporal: O(n*n)
Espai auxiliar: O(n)

Obteniu valors únics d'una llista Utilitzant el mètode Set

Utilitzant conjunt() propietat de Python, podem comprovar fàcilment els valors únics. Insereix els valors de la llista en un conjunt. Set només emmagatzema un valor una vegada encara que s'insereixi més d'una vegada. Després d'inserir tots els valors del conjunt per list_set=set(list1), convertiu aquest conjunt en una llista per imprimir-lo.

Python 3




def> unique(list1):> ># insert the list to the set> >list_set>=> set>(list1)> ># convert the set to the list> >unique_list>=> (>list>(list_set))> >for> x>in> unique_list:> >print> x,> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortida

the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>

Complexitat temporal: O(n), on n és la longitud d'una llista.
Espai auxiliar: O(n), on n és la longitud d'una llista.

Obteniu valors únics d'una llista a Python mitjançant la funció reduce().

Utilitzant la importació de Python reduir () des de functools i itera per tot l'element i comprova si l'element és un valor duplicat o únic. A continuació es mostra la implementació de l'enfocament anterior.

Python 3




from> functools>import> reduce> def> unique(list1):> ># Print directly by using * symbol> >ans>=> reduce>(>lambda> re, x: re>+>[x]>if> x>not> in> re>else> re, list1, [])> >print>(ans)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortida

the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>

Obteniu valors únics d'una llista a Python mitjançant el mètode Operator.countOf().

La funció 'única' inicialitza una 'lista_única' buida i, a continuació, itera per 'llista1'. Per a cada element 'x', s'utilitza ' op.countOf() ' per comprovar si 'x' està present a 'llista_única'. Si no es troba (el nombre és 0), 'x' s'afegeix a 'llista_única'. Els valors únics finals s'imprimeixen mitjançant a bucle . El codi del controlador mostra aquest procés per a dues llistes, 'llista1' i 'llista2', mostrant l'extracció d'elements diferents de cada llista mantenint el seu ordre original.

Python 3




import> operator as op> # function to get unique values> def> unique(list1):> ># initialize a null list> >unique_list>=> []> ># traverse for all elements> >for> x>in> list1:> ># check if exists in unique_list or not> >if> op.countOf(unique_list, x)>=>=> 0>:> >unique_list.append(x)> ># print list> >for> x>in> unique_list:> >print>(x)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortida

the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>

Complexitat temporal: O(N)
Espai auxiliar: O(N)

Obteniu valors únics d'una llista a Python mitjançant el mòdul pandas

La funció 'única' utilitza Pandes per crear una sèrie a partir de 'list1', després empra 'drop_duplicates()' per eliminar duplicats i obtenir una llista de valors únics. Posteriorment, itera per la llista única i imprimeix cada element. El codi del controlador mostra el procés de dues llistes, 'llista1' i 'llista2', proporcionant valors diferents per a cada llista.

Python 3




import> pandas as pd> # function to get unique values> def> unique(list1):> >unique_list>=> pd.Series(list1).drop_duplicates().tolist()> >for> x>in> unique_list:> >print>(x)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)> #This code is contributed by Vinay Pinjala.>

>

>

Sortida:

the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>

Complexitat temporal: O(N)
Espai auxiliar: O(N)

Obteniu valors únics d'una llista Utilitzant numpy.unique

Utilitzant la importació de Python numpy , també s'obtenen els elements únics de la matriu. En el primer pas convertiu la llista a x=numpy.array(llista) i després utilitzar numpy.unique(x) funció per obtenir els valors únics de la llista. numpy.unique() retorna només els valors únics de la llista.

Python 3




# using numpy.unique> import> numpy as np> def> unique(list1):> >x>=> np.array(list1)> >print>(np.unique(x))> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

>

Sortida:

the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>

Complexitat temporal: O(nlogn) a causa de l'ús de l'algorisme d'ordenació utilitzat per la funció numpy.unique().
Espai auxiliar: O(n) perquè la funció numpy.unique() crea una còpia de la matriu d'entrada i després l'ordena abans de retornar els elements únics.

Obteniu valors únics d'una llista a Python mitjançant collections.Counter()

Utilitzant Python per importar Counter() des de col·leccions imprimim totes les claus dels elements del comptador o imprimim directament utilitzant el * símbol. A continuació es mostra la implementació de l'enfocament anterior.

Python 3




from> collections>import> Counter> # Function to get unique values> def> unique(list1):> ># Print directly by using * symbol> >print>(>*>Counter(list1))> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>' the unique values from 2nd list is'>)> unique(list2)>

>

imprimir des de java

>

Sortida

the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>

Complexitat temporal: O(n) , on n és el nombre d'elements de la llista d'entrada.
Espai auxiliar: O(n)

Obteniu valors únics d'una llista mitjançant dict.fromkeys()

Utilitzant el fromkeys() mètode d'estructura de dades del diccionari podem obtenir els elements únics. Primer hem de definir una llista que consta d'elements duplicats. Després hem d'utilitzar una variable en la qual emmagatzemarem el resultat després d'utilitzar el mètode fromkeys(). convertiu aquest resultat en una llista, ja que el mètode fromkeys() forma part del diccionari, de manera que per defecte retorna un diccionari amb totes les claus úniques i Cap com a valors.

Python 3




# defining a list which consists duplicate values> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> # storing the result of the fromkeys()> # operation and converting it into list> unique_list_1>=> list>(>dict>.fromkeys(list1))> unique_list_2>=> list>(>dict>.fromkeys(list2))> # Printing the final result> print>(unique_list_1,unique_list_2,sep>=>' '>)>

>

>

Sortida

[10, 20, 30, 40] [1, 2, 3, 4, 5]>

Complexitat temporal - O(n)
Complexitat espacial - O(n)