logo

Python | Získejte jedinečné hodnoty ze seznamu

V tomto článku prozkoumáme různé techniky a strategie pro efektivní extrahování různých prvků z daného seznamu. Ponořením se do metod od tradičních smyček až po moderní Pythonic přístupy Krajta.

  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ískejte jedinečné hodnoty ze seznamu

Níže jsou uvedena témata, kterými se budeme v tomto článku zabývat:



  • Průchod z seznam
  • Použitím Soubor metoda
  • Použitím funkce snížit().
  • Použitím Operator.countOf() metoda
  • Použitím modul pandy
  • Použitím numpy.jedinečný
  • Použitím collections.Counter()
  • Použitím dict.fromkeys()

Získejte jedinečné hodnoty ze seznamu procházením seznamu

Pomocí traversal můžeme procházet pro každý prvek v seznamu a zkontrolovat, zda je prvek již v seznamu jedinečných, pokud tam není, a pak jej můžeme připojit k seznamu jedinečných_seznamů. To se provádí pomocí jednoho pro smyčku a další příkaz if, který kontroluje, zda je hodnota v jedinečném seznamu nebo ne, což je ekvivalentní jinému pro smyčku.

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

>

>

Výstup

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

Časová náročnost: O(n*n)
Pomocný prostor: Na)

Získejte jedinečné hodnoty ze seznamu Pomocí Set Method

Použitím soubor() vlastnosti Pythonu, můžeme snadno zkontrolovat jedinečné hodnoty. Vložte hodnoty seznamu do sady. Set ukládá hodnotu pouze jednou, i když je vložena více než jednou. Po vložení všech hodnot do sady pomocí list_set=set(list1) převeďte tuto sadu na seznam a vytiskněte ji.

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ýstup

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

Časová složitost: O(n), kde n je délka seznamu.
Pomocný prostor: O(n), kde n je délka seznamu.

Získejte jedinečné hodnoty ze seznamu v Pythonu pomocí funkce reduction().

Použití importu Pythonu snížit() z functools a iterujte přes všechny prvky a zkontrolujte, zda je prvek duplicitní nebo jedinečná hodnota. Níže je uvedena implementace výše uvedeného pří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)>

>

>

powershell víceřádkový komentář
Výstup

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

Získejte jedinečné hodnoty ze seznamu v Pythonu pomocí metody Operator.countOf().

Funkce ‚unique‘ inicializuje prázdný ‚unique_list‘ a poté iteruje přes ‚list1‘. Pro každý prvek „x“ používá „ op.countOf() ‘ zkontrolovat, zda je v ‘unique_list’ přítomno ‘x’. Není-li nalezen (počet je 0), „x“ je připojeno k „unique_list“. Konečné jedinečné hodnoty se vytisknou pomocí a smyčka . Kód ovladače demonstruje tento proces pro dva seznamy, ‚seznam1‘ a ‚seznam2‘, předvádí extrakci odlišných prvků z každého seznamu při zachování jejich původního pořadí.

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ýstup

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

Časová složitost:O(N)
Pomocný prostor: O(N)

Získejte jedinečné hodnoty ze seznamu v Pythonu pomocí modulu pandas

„Unikátní“ funkce využívá pandy k vytvoření řady ze ‚list1‘, pak použije ‚drop_duplicates()‘ k odstranění duplikátů a získání seznamu jedinečných hodnot. Následně projde jedinečným seznamem a vytiskne každý prvek. Kód ovladače demonstruje proces pro dva seznamy „list1“ a „list2“, přičemž pro každý seznam 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ýstup:

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

Časová složitost:O(N)
Pomocný prostor: O(N)

Získejte jedinečné hodnoty ze seznamu Pomocí numpy.unique

Použití importu Pythonu nemotorný , jsou také získány jedinečné prvky v poli. V prvním kroku převeďte seznam na x=numpy.array(seznam) a poté použijte numpy.unique(x) funkce pro získání jedinečných hodnot ze seznamu. numpy.unique() vrátí pouze jedinečné hodnoty v seznamu.

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ýstup:

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

Časová složitost: O(nlogn) kvůli použití třídícího algoritmu používaného funkcí numpy.unique().
Pomocný prostor: O(n), protože funkce numpy.unique() vytvoří kopii vstupního pole a poté jej seřadí, než vrátí jedinečné prvky.

Získejte jedinečné hodnoty ze seznamu v Pythonu pomocí collections.Counter()

Použití Pythonu k importu Counter() z sbírky vytiskněte všechny klíče prvků Counter nebo tiskneme přímo pomocí * symbol. Níže je uvedena implementace výše uvedeného pří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ýstup

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

Časová složitost: O(n) , kde n je počet prvků ve vstupním seznamu.
Pomocný prostor: O(n)

Získejte jedinečné hodnoty ze seznamu pomocí dict.fromkeys()

Za použití fromkeys() metodou slovníkové datové struktury můžeme načíst jedinečné prvky. Nejprve musíme definovat seznam, který se skládá z duplicitních prvků. Pak musíme použít proměnnou, do které uložíme výsledek po použití metody fromkeys(). převeďte výsledek na seznam, protože metoda fromkeys() je součástí slovníku, takže ve výchozím nastavení vrací slovník se všemi jedinečnými klíči a hodnotami None.

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ýstup

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

Časová složitost – O(n)
Vesmírná složitost – O(n)