W tym artykule przyjrzymy się różnym technikom i strategiom skutecznego wyodrębniania odrębnych elementów z danej listy. Zagłębiając się w metody od tradycyjnych pętli po nowoczesne podejścia Pythona Pyton.
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.>
Uzyskaj unikalne wartości z listy
Poniżej znajdują się tematy, które omówimy w tym artykule:
- Przejście przez lista
- Za pomocą Ustawić metoda
- Za pomocą funkcja redukcji().
- Za pomocą Operator.countOf() metoda
- Za pomocą moduł pandy
- Za pomocą numpy.unikalny
- Za pomocą kolekcje.Licznik()
- Za pomocą dykt.z kluczy()
Uzyskaj unikalne wartości z listy poprzez przeglądanie listy
Używając traversal, możemy przeszukać każdy element na liście i sprawdzić, czy element znajduje się już na unikalnej liście, jeśli go tam nie ma, to możemy dołączyć go do unikalnej listy. Odbywa się to za pomocą jednego dla pętli i kolejna instrukcja if, która sprawdza, czy wartość znajduje się na unikalnej liście, czy nie, co jest równoważne innej instrukcji dla pętli.
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)> |
>
>Wyjście
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Złożoność czasowa: O(n*n)
Przestrzeń pomocnicza: NA)
Uzyskaj unikalne wartości z listy Korzystanie z metody ustawiania
Za pomocą ustawić() właściwość Pythona, możemy łatwo sprawdzić unikalne wartości. Wstaw wartości listy do zestawu. Zestaw przechowuje wartość tylko raz, nawet jeśli zostanie wstawiona więcej niż raz. Po wstawieniu wszystkich wartości w zestawie przez list_set=set(list1), przekonwertuj ten zestaw na listę, aby go wydrukować.
Python3
ile lat ma Pete Davidson
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)> |
>
>Wyjście
the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>
Złożoność czasowa: O(n), gdzie n jest długością listy.
Przestrzeń pomocnicza: O(n), gdzie n jest długością listy.
Uzyskaj unikalne wartości z listy w Pythonie za pomocą funkcji redukcji ().
Korzystanie z importu Pythona zmniejszyć() z functools i iteruj po całym elemencie i sprawdza, czy element jest wartością zduplikowaną lub unikalną. Poniżej implementacja powyższego podejścia.
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)> |
>
>Wyjście
the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>
Uzyskaj unikalne wartości z listy w Pythonie za pomocą metody Operator.countOf().
Funkcja „unique” inicjuje pustą „unique_list”, a następnie wykonuje iterację po „list1”. Dla każdego elementu „x” stosuje się „ op.countOf() ‘, aby sprawdzić, czy „x” jest obecne na „unique_list”. Jeśli nie zostanie znaleziony (liczba wynosi 0), „x” zostanie dodane do „unique_list”. Ostateczne unikalne wartości są drukowane przy użyciu a pętla . Kod sterownika demonstruje ten proces dla dwóch list, „listy 1” i „listy 2”, pokazując wyodrębnienie odrębnych elementów z każdej listy przy zachowaniu ich pierwotnej kolejności.
Python3
konwersja ciągu znaków na liczbę całkowitą w Javie
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)> |
>
>Wyjście
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Złożoność czasowa: O(N)
Przestrzeń pomocnicza: O(N)
Uzyskaj unikalne wartości z listy w Pythonie za pomocą modułu pandas
Wykorzystuje się funkcję „unikalną”. Pandy aby utworzyć serię z „list1”, a następnie wykorzystuje funkcję „drop_duplicates()” w celu wyeliminowania duplikatów i uzyskania listy unikalnych wartości. Następnie iteruje po unikalnej liście i drukuje każdy element. Kod sterownika demonstruje proces dla dwóch list, „list1” i „list2”, zapewniając różne wartości dla każdej listy.
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.> |
>
>
Wyjście:
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Złożoność czasowa: O(N)
Przestrzeń pomocnicza: O(N)
Uzyskaj unikalne wartości z listy Używanie numpy.unique
Korzystanie z importu Pythona tępy , uzyskiwane są również unikalne elementy tablicy. W pierwszym kroku przekonwertuj listę na x=numpy.array(lista) a następnie użyj numpy.unique(x) funkcja, aby uzyskać unikalne wartości z listy. numpy.unique() zwraca tylko unikalne wartości z listy.
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)> |
>
>
Wyjście:
the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>
Złożoność czasowa: O(nlogn) ze względu na użycie algorytmu sortowania używanego przez funkcję numpy.unique().
Przestrzeń pomocnicza: O(n), ponieważ funkcja numpy.unique() tworzy kopię tablicy wejściowej, a następnie sortuje ją przed zwróceniem unikalnych elementów.
Uzyskaj unikalne wartości z listy w Pythonie za pomocą kolekcji.Counter()
Używanie Pythona do importowania Counter() z zbiory wydrukuj wszystkie klucze elementów Licznika lub wydrukuj bezpośrednio za pomocą * symbol. Poniżej implementacja powyższego podejścia.
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)> |
>
>Wyjście
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Złożoność czasowa: O(n) , gdzie n jest liczbą elementów na liście wejściowej.
Przestrzeń pomocnicza: O(n)
Uzyskaj unikalne wartości z listy za pomocą dict.fromkeys()
Używając z kluczy() metodą słownikowej struktury danych możemy pobrać unikalne elementy. Najpierw musimy zdefiniować listę składającą się z duplikatów elementów. Następnie musimy użyć zmiennej, w której będziemy przechowywać wynik po zastosowaniu metody fromkeys(). Musimy to zrobić przekonwertuj ten wynik na listę, ponieważ metoda fromkeys() jest częścią słownika, więc domyślnie zwraca słownik ze wszystkimi unikalnymi kluczami i wartością 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>=>'
'>)> |
>
>
co to jest system plików LinuksaWyjście
[10, 20, 30, 40] [1, 2, 3, 4, 5]>
Złożoność czasowa – O(n)
Złożoność przestrzeni – O(n)