logo

Python | Obțineți valori unice dintr-o listă

În acest articol, vom explora diverse tehnici și strategii pentru extragerea eficientă a elementelor distincte dintr-o listă dată. Prin adâncirea în metode variind de la bucle tradiționale la abordări moderne Pythonic cu Piton.

  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.>

Obțineți valori unice dintr-o listă

Mai jos sunt subiectele pe care le vom trata în acest articol:

  • Traversarea listă
  • Folosind A stabilit metodă
  • Folosind funcția reduce().
  • Folosind Operator.countOf() metodă
  • Folosind modul panda
  • Folosind numpy.unic
  • Folosind colecții.Counter()
  • Folosind dict.fromkeys()

Obțineți valori unice dintr-o listă prin Traversarea Listei

Folosind traversal, putem parcurge fiecare element din listă și putem verifica dacă elementul este deja în unique_list dacă nu este acolo, apoi îl putem adăuga la unique_list. Acest lucru se face folosind unul pentru buclă și o altă instrucțiune if care verifică dacă valoarea este în lista unică sau nu care este echivalentă cu alta pentru o buclă.



Python3




# 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)>

>

>

Ieșire

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

Complexitatea timpului: O(n*n)
Spațiu auxiliar: Pe)

Obțineți valori unice dintr-o listă Folosind metoda set

Folosind a stabilit() proprietatea lui Python, putem verifica cu ușurință valorile unice. Introduceți valorile listei într-un set. Set stochează o valoare o singură dată, chiar dacă este introdusă de mai multe ori. După ce ați inserat toate valorile din set de list_set=set(list1), convertiți acest set într-o listă pentru a-l imprima.

Python3




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)>

>

>

Ieșire

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

Complexitatea timpului: O(n), unde n este lungimea unei liste.
Spațiu auxiliar: O(n), unde n este lungimea unei liste.

Obțineți valori unice dintr-o listă în Python folosind funcția reduce().

Folosind importul Python reduce() din functools și repetă peste tot elementul și verifică dacă elementul este o valoare duplicat sau unică. Mai jos este implementarea abordării de mai sus.

Python3




șir ca o matrice

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)>

>

>

Ieșire

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

Obțineți valori unice dintr-o listă în Python folosind metoda Operator.countOf().

Funcția „unique” inițializează o „listă_unica” goală, apoi iterează prin „listă1”. Pentru fiecare element „x”, se folosește „ op.countOf() „ pentru a verifica dacă „x” este prezent în „lista_unică”. Dacă nu este găsit (numărul este 0), „x” este atașat la „listă_unica”. Valorile finale unice sunt imprimate folosind a buclă . Codul driverului demonstrează acest proces pentru două liste, „list1” și „list2”, prezentând extragerea elementelor distincte din fiecare listă, menținând în același timp ordinea inițială.

Python3




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)>

>

>

Ieșire

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

Complexitatea timpului: O(N)
Spațiu auxiliar: O(N)

Obțineți valori unice dintr-o listă în Python folosind modulul Pandas

Funcția „unică” folosește panda pentru a crea o serie din „list1”, apoi folosește „drop_duplicates()” pentru a elimina duplicatele și a obține o listă de valori unice. Ulterior, iterează prin lista unică și tipărește fiecare element. Codul driverului demonstrează procesul pentru două liste, „list1” și „list2”, oferind valori distincte pentru fiecare listă.

Python3


rețea și tipuri de rețea



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.>

>

>

Ieșire:

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

Complexitatea timpului: O(N)
Spațiu auxiliar: O(N)

Obțineți valori unice dintr-o listă Folosind numpy.unique

Folosind importul Python numpy , se obțin și elementele unice din matrice. În primul pas convertiți lista în x=numpy.array(listă) și apoi folosiți numpy.unique(x) funcția pentru a obține valorile unice din listă. numpy.unique() returnează numai valorile unice din listă.

Python3




# 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)>

>

>

Ieșire:

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

Complexitatea timpului: O(nlogn) datorită utilizării algoritmului de sortare utilizat de funcția numpy.unique().
Spatiu auxiliar: O(n) deoarece funcția numpy.unique() creează o copie a matricei de intrare și apoi o sortează înainte de a returna elementele unice.

Obțineți valori unice dintr-o listă în Python folosind collections.Counter()

Folosind Python pentru a importa Counter() din colecții tipărim toate cheile elementelor Counter sau imprimăm direct folosind * simbol. Mai jos este implementarea abordării de mai sus.

Python3




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)>

>

>

Ieșire

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

Complexitatea timpului: O(n) , unde n este numărul de elemente din lista de intrare.
Spațiu auxiliar: O(n)

Obțineți valori unice dintr-o listă folosind dict.fromkeys()

Folosind de la chei() Metoda structurii de date din dicționar putem prelua elementele unice. În primul rând, trebuie să definim o listă care constă din elemente duplicat. Apoi trebuie să folosim o variabilă în care vom stoca rezultatul după folosirea metodei fromkeys(). convertiți rezultatul într-o listă, deoarece metoda fromkeys() face parte din dicționar, astfel încât implicit returnează un dicționar cu toate cheile unice și None ca valori.

Python3




cifre romane 1100
# 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>=>' '>)>

>

>

Ieșire

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

Complexitatea timpului – O(n)
Complexitatea spațiului – O(n)