logo

Python | Získajte jedinečné hodnoty zo zoznamu

V tomto článku preskúmame rôzne techniky a stratégie na efektívne extrahovanie odlišných prvkov z daného zoznamu. Ponorením sa do metód od tradičných slučiek až po moderné Pythonic prístupy 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.>

Získajte jedinečné hodnoty zo zoznamu

Nižšie sú uvedené témy, ktorým sa budeme venovať v tomto článku:



  • Prechod cez zoznam
  • Použitím Set metóda
  • Použitím redukcia() funkcie
  • Použitím Operator.countOf() metóda
  • Použitím modul pandy
  • Použitím numpy.jedinečný
  • Použitím collections.Counter()
  • Použitím dict.fromkeys()

Získajte jedinečné hodnoty zo zoznamu prejdením zoznamu

Pomocou prechodu môžeme prejsť pre každý prvok v zozname a skontrolovať, či sa prvok už nachádza v zozname unique_list, ak tam nie je, a potom ho môžeme pridať do zoznamu unique_list. To sa vykonáva pomocou jedného pre slučku a ďalší príkaz if, ktorý kontroluje, či je hodnota v jedinečnom zozname alebo nie, ktorý je ekvivalentný inému pre cyklus.

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

>

>

nie
Výkon

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

Časová zložitosť: O(n*n)
Pomocný priestor: O(n)

Získajte jedinečné hodnoty zo zoznamu Použitie metódy nastavenia

Použitím set() vlastnosti Pythonu, môžeme ľahko skontrolovať jedinečné hodnoty. Vložte hodnoty zoznamu do sady. Set ukladá hodnotu iba raz, aj keď je vložená viackrát. Po vložení všetkých hodnôt v množine pomocou list_set=set(zoznam1) skonvertujte túto množinu na zoznam, aby ste ju mohli vytlačiť.

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

>

>

Výkon

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

Časová zložitosť: O(n), kde n je dĺžka zoznamu.
Pomocný priestor: O(n), kde n je dĺžka zoznamu.

Získajte jedinečné hodnoty zo zoznamu v Pythone pomocou funkcie Zníženie ().

Použitie importu Pythonu znížiť () z functools a iterujte cez všetky prvky a skontrolujete, či je prvok duplikátnou alebo jedinečnou hodnotou. Nižšie je uvedená implementácia vyššie uvedeného prístupu.

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

>

>

Výkon

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

Získajte jedinečné hodnoty zo zoznamu v Pythone pomocou metódy Operator.countOf().

Funkcia „unique“ inicializuje prázdny „unique_list“ a potom iteruje cez „list1“. Pre každý prvok „x“ používa „ op.countOf() “, aby ste skontrolovali, či sa „x“ nachádza v „unique_liste“. Ak sa nenájde (počet je 0), „x“ sa pripojí k „unique_list“. Konečné jedinečné hodnoty sa vytlačia pomocou a slučka . Kód ovládača demonštruje tento proces pre dva zoznamy, „zoznam1“ a „zoznam2“, pričom zobrazuje extrakciu odlišných prvkov z každého zoznamu pri zachovaní ich pôvodného poradia.

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

>

>

Výkon

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

Časová zložitosť:O(N)
Pomocný priestor: O(N)

Získajte jedinečné hodnoty zo zoznamu v Pythone pomocou modulu pandas

Využíva sa „jedinečná“ funkcia pandy na vytvorenie série zo zoznamu 1, potom použije funkciu drop_duplicates() na odstránenie duplikátov a získanie zoznamu jedinečných hodnôt. Následne prejde jedinečným zoznamom a vytlačí každý prvok. Kód ovládača demonštruje proces pre dva zoznamy, „list1“ a „list2“, pričom pre každý zoznam poskytuje odlišné hodnoty.

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

>

>

Výkon:

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

Časová zložitosť:O(N)
Pomocný priestor: O(N)

reťazec v porovnaní s

Získajte jedinečné hodnoty zo zoznamu Pomocou numpy.unique

Použitie importu Pythonu nemotorný , získajú sa aj jedinečné prvky v poli. V prvom kroku preveďte zoznam na x=numpy.array(zoznam) a potom použite numpy.unique(x) získajte jedinečné hodnoty zo zoznamu. numpy.unique() vráti iba jedinečné hodnoty v zozname.

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

>

>

Výkon:

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

Časová zložitosť: O(nlogn) kvôli použitiu triediaceho algoritmu používaného funkciou numpy.unique().
Pomocný priestor: O(n), pretože funkcia numpy.unique() vytvorí kópiu vstupného poľa a potom ju triedi pred vrátením jedinečných prvkov.

Získajte jedinečné hodnoty zo zoznamu v Pythone pomocou collections.Counter()

Použitie Pythonu na importovanie Counter() z zbierky vytlačíme všetky kľúče prvkov Counter alebo vytlačíme priamo pomocou * symbol. Nižšie je uvedená implementácia vyššie uvedeného prístupu.

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

>

>

Výkon

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

Časová zložitosť: O(n) , kde n je počet prvkov vo vstupnom zozname.
Pomocný priestor: O(n)

Získajte jedinečné hodnoty zo zoznamu pomocou dict.fromkeys()

Pomocou fromkeys() metódou slovníkovej dátovej štruktúry môžeme získať jedinečné prvky. Najprv musíme definovať zoznam, ktorý pozostáva z duplicitných prvkov. Potom musíme použiť premennú, do ktorej po použití metódy fromkeys() uložíme výsledok. skonvertujte výsledok na zoznam, pretože metóda fromkeys() je súčasťou slovníka, takže štandardne vracia slovník so všetkými jedinečnými kľúčmi a hodnotami None.

súbor json

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

>

>

Výkon

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

Časová zložitosť – O(n)
Priestorová zložitosť – O(n)