Tässä artikkelissa tutkimme erilaisia tekniikoita ja strategioita yksittäisten elementtien tehokkaaseen poimimiseen annetusta luettelosta. Sukeltamalla menetelmiin, jotka vaihtelevat perinteisistä silmukoista nykyaikaisiin Pythonic-lähestymistapoihin 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.>
Hanki ainutlaatuiset arvot luettelosta
Alla ovat aiheet, joita käsittelemme tässä artikkelissa:
- Läpikulku lista
- Käyttämällä Aseta menetelmä
- Käyttämällä vähentää()-funktiota
- Käyttämällä Operator.countOf() menetelmä
- Käyttämällä panda-moduuli
- Käyttämällä numpy.unique
- Käyttämällä kokoelmat. Counter()
- Käyttämällä dict.fromkeys()
Hanki ainutlaatuisia arvoja luettelosta by Traversal of the List
Traversalin avulla voimme kulkea jokaisen luettelon elementin kohdalla ja tarkistaa, onko elementti jo uniikin_luettelossa, jos se ei ole siellä, niin voimme liittää sen yksilöivä_luetteloon. Tämä tehdään käyttämällä yhtä silmukalle ja toinen if-lause, joka tarkistaa, onko arvo yksilöivässä luettelossa vai ei, joka vastaa toista silmukalle.
Python 3
# 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)> |
>
>Lähtö
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Aika monimutkaisuus: O(n*n)
Aputila: Päällä)
Hanki ainutlaatuisia arvoja luettelosta Aseta menetelmän käyttäminen
Käyttämällä aseta() Pythonin ominaisuus, voimme helposti tarkistaa ainutlaatuiset arvot. Lisää listan arvot joukkoon. Set tallentaa arvon vain kerran, vaikka se lisättäisiin useammin kuin kerran. Kun olet lisännyt kaikki arvot joukkoon listalla_set=set(list1), muunna tämä joukko luetteloksi tulostaaksesi sen.
Python 3
merkkijono vertaa javaa
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)> |
>
>Lähtö
the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>
Aika monimutkaisuus: O(n), missä n on listan pituus.
Aputila: O(n), missä n on listan pituus.
Hanki ainutlaatuisia arvoja luettelosta Pythonissa käyttämällä vähennysfunktiota ().
Python-tuonti vähentää() functoolsista ja iteroi kaikki elementit ja tarkistaa, onko elementti kaksoisarvo vai ainutlaatuinen arvo. Alla on edellä mainitun lähestymistavan toteutus.
Python 3
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)> |
>
>Lähtö
the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>
Hanki ainutlaatuiset arvot Pythonin luettelosta Operator.countOf()-menetelmällä
'Ainutlaatuinen'-funktio alustaa tyhjän 'unique_list' ja toistaa sitten 'list1':n kautta. Jokaiselle elementille 'x' se käyttää ' op.countOf() ' tarkistaaksesi, onko 'x' luettelossa 'unique_list'. Jos ei löydy (luku on 0), 'x' lisätään 'unique_list' -luetteloon. Lopulliset yksilölliset arvot tulostetaan käyttämällä a silmukka . Ohjainkoodi esittelee tämän prosessin kahdelle luettelolle, 'lista1' ja 'lista2', ja esittelee erillisten elementtien poimimisen kustakin luettelosta säilyttäen samalla niiden alkuperäisen järjestyksen.
Python 3
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)> |
>
>Lähtö
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Aika monimutkaisuus: O(N)
Aputila: O(N)
Hanki ainutlaatuisia arvoja Pythonin luettelosta Pandas-moduulin avulla
'Ainutlaatuinen' toiminto käyttää Pandat luodaksesi sarjan luettelosta 1, käyttää sitten komentoa 'drop_duplicates()' poistaakseen kaksoiskappaleet ja saadakseen luettelon yksilöllisistä arvoista. Tämän jälkeen se toistaa yksilöllisen luettelon ja tulostaa jokaisen elementin. Ohjainkoodi näyttää prosessin kahdelle listalle, 'list1' ja 'list2', tarjoten jokaiselle luettelolle erilliset arvot.
Python 3
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.> |
>
>
Lähtö:
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Aika monimutkaisuus: O(N)
Aputila: O(N)
Hanki ainutlaatuisia arvoja luettelosta Käyttämällä numpy.unique
Python-tuonnin käyttäminen nuhjuinen , saadaan myös taulukon ainutlaatuiset elementit. Ensimmäisessä vaiheessa muunna luettelo muotoon x=numpy.array(list) ja sitten käyttää numpy.unique(x) toimintoa saadaksesi yksilölliset arvot luettelosta. numpy.unique() palauttaa vain luettelon ainutlaatuiset arvot.
Python 3
# 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)> |
javatpoint java
>
>
Lähtö:
the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>
Aika monimutkaisuus: O(nlogn) johtuen numpy.unique()-funktion käyttämän lajittelualgoritmin käytöstä.
Aputila: O(n), koska numpy.unique()-funktio luo kopion syötetaulukosta ja lajittelee sen ennen yksilöllisten elementtien palauttamista.
Hanki ainutlaatuiset arvot Pythonin luettelosta kokoelmat.Counter()
Pythonin käyttäminen Counter():n tuomiseen kohteesta kokoelmat tulostaa kaikki Counter-elementtien avaimet tai tulostamme suoraan käyttämällä * symboli. Alla on edellä mainitun lähestymistavan toteutus.
Python 3
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)> |
>
>Lähtö
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Aika monimutkaisuus: O(n) , jossa n on syöttöluettelon elementtien lukumäärä.
Aputila: O(n)
Hanki yksilölliset arvot luettelosta käyttämällä dict.fromkeys()
Käyttämällä fromkeys() Sanakirjan tietorakenteen menetelmällä voimme hakea yksilölliset elementit. Ensin meidän on määritettävä luettelo, joka koostuu päällekkäisistä elementeistä. Sitten meidän on käytettävä muuttujaa, johon tallennamme tuloksen fromkeys()-menetelmän käytön jälkeen. muuntaa tämän tuloksen luetteloksi, koska fromkeys()-menetelmä on osa sanakirjaa, joten oletusarvoisesti se palauttaa sanakirjan, jossa on kaikki yksilölliset avaimet ja None niiden arvoina.
Python 3
# 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>=>'
'>)> |
>
>Lähtö
[10, 20, 30, 40] [1, 2, 3, 4, 5]>
Aika monimutkaisuus – O(n)
Tilan monimutkaisuus – O(n)