logo

Python | Få unike verdier fra en liste

I denne artikkelen vil vi utforske ulike teknikker og strategier for effektivt å trekke ut distinkte elementer fra en gitt liste. Ved å dykke ned i metoder som spenner fra tradisjonelle loops til moderne pytoniske tilnærminger med 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.>

Få unike verdier fra en liste

Nedenfor er emnene vi vil dekke i denne artikkelen:



  • Traversering av liste
  • Ved hjelp av Sett metode
  • Ved hjelp av redusere() funksjon
  • Ved hjelp av Operator.countOf() metode
  • Ved hjelp av pandamodul
  • Ved hjelp av numpy.unique
  • Ved hjelp av collections.Counter()
  • Ved hjelp av dict.fromkeys()

Få unike verdier fra en liste ved Traversal of the List

Ved å bruke traversal kan vi krysse for hvert element i listen og sjekke om elementet allerede er i unique_list hvis det ikke er der borte, så kan vi legge det til i unique_list. Dette gjøres ved hjelp av en for løkke og en annen if-setning som sjekker om verdien er i den unike listen eller ikke som tilsvarer en annen for en løkke.

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

>

tilfeldig ingen generator i java
>

Produksjon

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

Tidskompleksitet: O(n*n)
Hjelpeplass: På)

Få unike verdier fra en liste Bruker Set Method

Ved hjelp av sett() egenskapen til Python, kan vi enkelt se etter de unike verdiene. Sett inn verdiene til listen i et sett. Sett lagrer bare en verdi én gang selv om den settes inn mer enn én gang. Etter å ha satt inn alle verdiene i settet av list_set=set(list1), konverter dette settet til en liste for å skrive det ut.

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

>

>

Produksjon

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

Tidskompleksitet: O(n), hvor n er lengden på en liste.
Hjelpeplass: O(n), hvor n er lengden på en liste.

Få unike verdier fra en liste i Python ved å bruke reduce()-funksjonen

Bruker Python import redusere() fra functools og iterer over alle elementer og sjekker om elementet er en duplikat eller unik verdi. Nedenfor er implementeringen av tilnærmingen ovenfor.

Python3




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

>

>

Produksjon

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

Få unike verdier fra en liste i Python ved å bruke Operator.countOf()-metoden

Funksjonen 'unik' initialiserer en tom 'unique_list', og itererer deretter gjennom 'liste1'. For hvert element 'x' bruker det ' op.countOf() ' for å sjekke om 'x' er til stede i 'unique_list'. Hvis ikke funnet (antall er 0), legges 'x' til 'unique_list'. De endelige unike verdiene skrives ut med en Løkke . Driverkoden demonstrerer denne prosessen for to lister, 'liste1' og 'liste2', som viser uttrekket av distinkte elementer fra hver liste samtidig som den beholder sin opprinnelige rekkefølge.

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

>

>

Produksjon

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

Tidskompleksitet:O(N)
Hjelpeområde: O(N)

Få unike verdier fra en liste i Python ved å bruke pandamodulen

Den 'unike' funksjonen bruker Pandaer for å lage en serie fra 'list1', bruker deretter 'drop_duplicates()' for å eliminere duplikater og få en liste med unike verdier. Deretter itererer den gjennom den unike listen og skriver ut hvert element. Driverkoden demonstrerer prosessen for to lister, 'liste1' og 'liste2', og gir distinkte verdier for hver liste.

Python3


skanner java



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

>

>

Produksjon:

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

Tidskompleksitet:O(N)
Hjelpeområde: O(N)

Få unike verdier fra en liste Bruker numpy.unique

Bruker Pythons import nusset , oppnås også de unike elementene i arrayet. I det første trinnet konverterer listen til x=numpy.array(liste) og deretter bruke numpy.unique(x) funksjon for å få de unike verdiene fra listen. numpy.unique() returnerer bare de unike verdiene i listen.

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

>

>

Produksjon:

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

Tidskompleksitet: O(nlogn) på grunn av bruken av sorteringsalgoritmen som brukes av funksjonen numpy.unique().
Ekstra plass: O(n) fordi funksjonen numpy.unique() oppretter en kopi av inndatamatrisen og sorterer den før den returnerer de unike elementene.

Få unike verdier fra en liste i Python ved å bruke collections.Counter()

Bruker Python til å importere Counter() fra samlinger skriv ut alle nøklene til Counter-elementer eller vi skriver ut direkte ved å bruke * symbol. Nedenfor er implementeringen av tilnærmingen ovenfor.

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

>

>

Produksjon

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

Tidskompleksitet: O(n) , hvor n er antall elementer i inndatalisten.
Hjelpeområde: O(n)

Få unike verdier fra en liste ved å bruke dict.fromkeys()

Bruker fromkeys() metode for ordbok datastruktur kan vi hente de unike elementene. Først må vi definere en liste som består av dupliserte elementer. Deretter må vi bruke en variabel der vi skal lagre resultatet etter å ha brukt fromkeys() metoden. konverter det resultatet til en liste, siden fromkeys()-metoden er en del av ordboken, så som standard returnerer den en ordbok med alle de unike nøklene og Ingen som verdier.

Python3




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

>

tabell i reaksjon
>

Produksjon

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

Tidskompleksitet – O(n)
Romkompleksitet – O(n)