Python | Iegūstiet unikālas vērtības no saraksta

Šajā rakstā mēs izpētīsim dažādas metodes un stratēģijas, kā efektīvi iegūt atsevišķus elementus no noteiktā saraksta. Iedziļinoties metodēs, sākot no tradicionālajām cilpām līdz mūsdienu Pythonic pieejām ar 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. 

Iegūstiet unikālas vērtības no saraksta

Tālāk ir norādītas tēmas, kuras mēs apskatīsim šajā rakstā:

Iegūstiet unikālas vērtības no saraksta ar saraksta šķērsošanu

Izmantojot traversal, mēs varam šķērsot katru elementu sarakstā un pārbaudīt, vai elements jau ir unikālo_saraksts, ja tas tur nav, tad mēs varam pievienot to unikālajam_sarakstam. Tas tiek darīts, izmantojot vienu cilpai un vēl viens if paziņojums, kas pārbauda, ​​vai vērtība ir vai nav unikālajā sarakstā, kas ir līdzvērtīga citai cilpai.

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

Izvade

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

Laika sarežģītība: O(n*n)
Palīgtelpa: O(n)

Iegūstiet unikālas vērtības no saraksta Izmantojot iestatīšanas metodi

Izmantojot set() Python īpašums, mēs varam viegli pārbaudīt unikālās vērtības. Ievietojiet saraksta vērtības komplektā. Iestatījums saglabā vērtību tikai vienu reizi, pat ja tā tiek ievietota vairāk nekā vienu reizi. Pēc visu vērtību ievietošanas kopā, izmantojot list_set=set(list1), pārveidojiet šo kopu par sarakstu, lai to izdrukātu.

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

Izvade

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

Laika sarežģītība: O(n), kur n ir saraksta garums.
Palīgtelpa: O(n), kur n ir saraksta garums.

Iegūstiet unikālas vērtības no Python saraksta, izmantojot funkciju samazināt ().

Izmantojot Python importēšanu samazināt () no functools un atkārtojiet visu elementu un pārbauda, ​​vai elements ir dublikāts vai unikāla vērtība. Zemāk ir aprakstīta iepriekš minētās pieejas īstenošana.

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

Izvade

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

Iegūstiet unikālas vērtības no Python saraksta, izmantojot metodi Operator.countOf().

Funkcija “unikāls” inicializē tukšu “unikālo_sarakstu”, pēc tam atkārtojas caur “list1”. Katram elementam “x” tas izmanto “ op.countOf() “, lai pārbaudītu, vai “x” atrodas sarakstā “unikālais_saraksts”. Ja nav atrasts (skaits ir 0), “x” tiek pievienots “unikālais_saraksts”. Galīgās unikālās vērtības tiek izdrukātas, izmantojot a cilpa . Draivera kods parāda šo procesu diviem sarakstiem — “list1” un “list2”, parādot atšķirīgu elementu izvilkšanu no katra saraksta, vienlaikus saglabājot to sākotnējo secību.

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

Izvade

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

Laika sarežģītība: O(N)
Palīgtelpa: O(N)

Iegūstiet unikālas vērtības no Python saraksta, izmantojot pandas moduli

Tiek izmantota funkcija “unikālā”. Pandas lai izveidotu sēriju no “list1”, pēc tam izmanto “drop_duplicates()”, lai novērstu dublikātus un iegūtu unikālu vērtību sarakstu. Pēc tam tas atkārto unikālo sarakstu un izdrukā katru elementu. Draivera kods parāda procesu diviem sarakstiem — “list1” un “list2”, nodrošinot katram sarakstam atšķirīgas vērtības.

Python3




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

Izvade:

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

Laika sarežģītība: O(N)
Palīgtelpa: O(N)

Iegūstiet unikālas vērtības no saraksta Izmantojot numpy.unique

Izmantojot Python importēšanu nejutīgs , tiek iegūti arī unikālie elementi masīvā. Pirmajā solī pārveidojiet sarakstu uz x=numpy.masīvs(saraksts) un pēc tam izmantojiet numpy.unique(x) funkciju, lai no saraksta iegūtu unikālās vērtības. numpy.unique() atgriež tikai unikālās vērtības sarakstā.

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

Izvade:

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

Laika sarežģītība: O(nlogn), jo tiek izmantots kārtošanas algoritms, ko izmanto funkcija numpy.unique().
Palīgtelpa: O(n), jo funkcija numpy.unique() izveido ievades masīva kopiju un pēc tam sakārto to pirms unikālo elementu atgriešanas.

Iegūstiet unikālas vērtības no Python saraksta, izmantojot kolekcijas.Counter()

Izmantojot Python, lai importētu Counter () no kolekcijas izdrukājiet visus Counter elementu taustiņus vai arī drukājam tieši, izmantojot * simbols. Zemāk ir aprakstīta iepriekš minētās pieejas īstenošana.

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

Izvade

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

Laika sarežģītība: O(n) , kur n ir elementu skaits ievades sarakstā.
Palīgtelpa: O(n)

Iegūstiet unikālas vērtības no saraksta, izmantojot dict.fromkeys()

Izmantojot fromkeys () vārdnīcas datu struktūras metode mēs varam iegūt unikālos elementus.Vispirms mums ir jādefinē saraksts, kas sastāv no dublētiem elementiem. Pēc tam mums ir jāizmanto mainīgais, kurā mēs saglabāsim rezultātu pēc fromkeys() metodes izmantošanas.Mums ir nepieciešams pārvērst šo rezultātu sarakstā, jo metode fromkeys() ir daļa no vārdnīcas, tāpēc pēc noklusējuma tā atgriež vārdnīcu ar visām unikālajām atslēgām un None kā to vērtībām.

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

Izvade

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

Laika sarežģītība — O(n)
Telpas sarežģītība — O(n)