In dit artikel zullen we verschillende technieken en strategieën onderzoeken om op efficiënte wijze verschillende elementen uit een bepaalde lijst te extraheren. Door je te verdiepen in methoden variërend van traditionele loops tot moderne Python-benaderingen 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.>
Haal unieke waarden uit een lijst
Hieronder staan de onderwerpen die we in dit artikel zullen behandelen:
- Doortocht van de lijst
- Gebruik makend van Set methode
- Gebruik makend van reduce() functie
- Gebruik makend van Operator.countOf() methode
- Gebruik makend van panda's module
- Gebruik makend van numpy.uniek
- Gebruik makend van collecties.Counter()
- Gebruik makend van dict.fromkeys()
Haal unieke waarden uit een lijst door het doorlopen van de lijst
Met behulp van traversal kunnen we elk element in de lijst doorlopen en controleren of het element al in de unieke_lijst staat. Als het daar niet staat, kunnen we het aan de unieke_lijst toevoegen. Dit gebeurt met behulp van één for loop en een andere if-instructie die controleert of de waarde in de unieke lijst staat of niet, wat equivalent is aan een andere voor een lus.
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)> |
>
>Uitvoer
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Tijdcomplexiteit: O(n*n)
Hulpruimte: Op)
Haal unieke waarden uit een lijst Met behulp van de ingestelde methode
Gebruik makend van set() eigenschap van Python, kunnen we eenvoudig controleren op de unieke waarden. Voeg de waarden van de lijst in een set in. Set slaat een waarde slechts één keer op, zelfs als deze meer dan één keer wordt ingevoegd. Nadat u alle waarden in de set met list_set=set(list1) hebt ingevoegd, converteert u deze set naar een lijst om deze af te drukken.
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)> |
>
>Uitvoer
the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>
Tijdcomplexiteit: O(n), waarbij n de lengte van een lijst is.
Hulpruimte: O(n), waarbij n de lengte van een lijst is.
Haal unieke waarden uit een lijst in Python met behulp van de functie reduce().
Python-import gebruiken verminderen() van functools en herhaal alle elementen en controleer of het element een dubbele of unieke waarde is. Hieronder vindt u de implementatie van bovenstaande aanpak.
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)> |
>
>Uitvoer
the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>
Haal unieke waarden uit een lijst in Python met behulp van de Operator.countOf() -methode
De ‘unieke’ functie initialiseert een lege ‘unieke_lijst’ en herhaalt vervolgens ‘lijst1’. Voor elk element ‘x’ wordt ‘ op.countOf() ‘ om te controleren of ‘x’ aanwezig is in ‘unieke_lijst’. Indien niet gevonden (aantal is 0), wordt ‘x’ toegevoegd aan ‘unieke_lijst’. De uiteindelijke unieke waarden worden afgedrukt met behulp van a lus . De stuurprogrammacode demonstreert dit proces voor twee lijsten, ‘lijst1’ en ‘lijst2’, waarbij de extractie van verschillende elementen uit elke lijst wordt getoond met behoud van hun oorspronkelijke volgorde.
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)> |
>
>Uitvoer
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Tijdcomplexiteit:O(N)
Hulpruimte: O (N)
Haal unieke waarden uit een lijst in Python met behulp van de Panda-module
De ‘unieke’ functie maakt gebruik van Panda's om een serie te maken van ‘list1’, en gebruikt vervolgens ‘drop_duplicates()’ om duplicaten te elimineren en een lijst met unieke waarden te verkrijgen. Vervolgens doorloopt het de unieke lijst en wordt elk element afgedrukt. De stuurprogrammacode demonstreert het proces voor twee lijsten, ‘list1’ en ‘list2’, en biedt voor elke lijst verschillende waarden.
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.> |
>
>
Uitgang:
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Tijdcomplexiteit:O(N)
Hulpruimte: O (N)
Haal unieke waarden uit een lijst Numpy.unique gebruiken
Met behulp van Python's import numpig , worden ook de unieke elementen in de array verkregen. Converteer in de eerste stap de lijst naar x=numpy.array(lijst) en dan gebruiken numpy.unique(x) functie om de unieke waarden uit de lijst te halen. numpy.unique() retourneert alleen de unieke waarden in de lijst.
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)> |
>
>
Uitgang:
the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>
Tijdcomplexiteit: O(nlogn) vanwege het gebruik van het sorteeralgoritme dat wordt gebruikt door de functie numpy.unique().
Hulpruimte: O(n) omdat de functie numpy.unique() een kopie van de invoerarray maakt en deze vervolgens sorteert voordat de unieke elementen worden geretourneerd.
string een int
Haal unieke waarden uit een lijst in Python met behulp van collections.Counter()
Python gebruiken om Counter() van te importeren collecties print alle sleutels van Counter-elementen of we printen rechtstreeks met behulp van de * symbool. Hieronder vindt u de implementatie van bovenstaande aanpak.
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)> |
>
>Uitvoer
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Tijdcomplexiteit: O(n) , waarbij n het aantal elementen in de invoerlijst is.
Hulpruimte: O(n)
Haal unieke waarden uit een lijst met dict.fromkeys()
De ... gebruiken vantoetsen() methode van woordenboekdatastructuur kunnen we de unieke elementen ophalen. Eerst moeten we een lijst definiëren die uit dubbele elementen bestaat. Vervolgens moeten we een variabele gebruiken waarin we het resultaat opslaan na gebruik van de fromkeys() methode. We moeten converteer dat resultaat naar een lijst, omdat de methode fromkeys() deel uitmaakt van het woordenboek en dus standaard een woordenboek retourneert met alle unieke sleutels en Geen als hun waarden.
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> => '
'> )> |
>
>Uitvoer
[10, 20, 30, 40] [1, 2, 3, 4, 5]>
Tijdcomplexiteit – O(n)
Ruimtecomplexiteit – O(n)