logo

Python | Tapoja löytää arvoindeksit luettelosta

Yleensä meidän on löydettävä indeksi, jossa tietty arvo sijaitsee. On olemassa monia menetelmiä tämän saavuttamiseksi, käyttämällä index() jne. Mutta joskus täytyy löytää kaikki tietyn arvon indeksit, jos sillä on useita esiintymiä luettelossa. Keskustellaan tietyistä tavoista löytää arvoindeksejä annetusta luettelosta Python .

Tapoja löytää arvoindeksit luettelosta

Alla on menetelmät, joita käsittelemme tässä artikkelissa:



Etsi kohteen indeksi naiivilla menetelmällä

Voimme saavuttaa tämän tehtävän iteroimalla luetteloa ja tarkistamalla kyseisen arvon ja vain lisäämällä arvoindeksin uuteen luetteloon ja tulostamalla sen. Tämä on raa'an voiman perusmenetelmä tämän tehtävän saavuttamiseksi.

Python 3








# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(test_list))> # using naive method to find indices for 3> res_list>=> []> for> i>in> range>(>0>,>len>(test_list)):> >if> test_list[i]>=>=> 3>:> >res_list.append(i)> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

Lähtö

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Aika monimutkaisuus: Päällä)
Aputila: Päällä)

Java-kielen haastattelukysymykset

Etsi kohteen hakemisto luettelon ymmärtämisen avulla

Listan ymmärtäminen on vain lyhennelmä tekniikka raakavoimatehtävän saavuttamiseksi, käyttää vain vähemmän koodirivejä tehtävän saavuttamiseksi ja säästää siten ohjelmoijien aikaa.

Python 3




# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(test_list))> # using list comprehension> # to find indices for 3> res_list>=> [i>for> i>in> range>(>len>(test_list))>if> test_list[i]>=>=> 3>]> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

Lähtö

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Aika monimutkaisuus: Päällä)
Aputila: Päällä)

Etsi kohteen indeksi käyttämällä Enumerate() F unction

Käyttämällä luetella() voimme saavuttaa samanlaisen tehtävän, tämä on hieman nopeampi tekniikka kuin yllä, ja siksi sitä suositellaan käytettäväksi luettelon ymmärtämistekniikan yläpuolella.

Python 3




# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(test_list))> # using enumerate()> # to find indices for 3> res_list>=> [i>for> i, value>in> enumerate>(test_list)>if> value>=>=> 3>]> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

Lähtö

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Aika monimutkaisuus: Päällä)
Aputila: Päällä)

Etsi kohteen indeksi käyttämällä filter() F unction

Tämä on vielä yksi menetelmä, jota voidaan käyttää tämän tietyn tehtävän saavuttamiseen, suodattaa() yleensä pystyy suorittamaan suodatustehtävät ja voidaan siten käyttää myös tässä tilanteessa tämän tehtävän suorittamiseen.

Python 3




# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(test_list))> # using filter() to find indices for 3> res_list>=> list>(>filter>(>lambda> x: test_list[x]>=>=> 3>,>range>(>len>(test_list))))> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

Lähtö

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Aika monimutkaisuus: Päällä)
Aputila: Päällä)

Etsi kohteen hakemisto numpy Libraryn avulla

Tämä ohjelma käyttää nuhjuinen kirjasto muuntaa tietyn listan taulukoksi, löytää taulukosta annetun arvon indeksit ja muuntaa tuloksena olevan nuhjuinen joukko takaisin luetteloon. Lopuksi se tulostaa luettelon indekseistä.

Python 3

udp-protokolla




import> numpy as np> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # convert the list to a numpy array> test_array>=> np.array(test_list)> # find the indices of the value 3 in the array> res_array>=> np.where(test_array>=>=> 3>)[>0>]> # convert the numpy array back to a list> res_list>=> list>(res_array)> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

TULOSTULO:

New indices list : [1, 3]>

Aika monimutkaisuus: O(n), missä n on syöteluettelon pituus.
Aputila: O(n), koska se luo uuden numpy-taulukon, jonka pituus on sama kuin syöttöluettelo.

Etsi kohteen hakemisto for Loopin avulla

Alusta tyhjä luettelo nimeltä res_list tallentaaksesi kohdearvojen indeksit.Iteroi jokaisen syöttöluettelon test_list elementin läpi käyttämällä for-silmukkaa.Jos nykyinen elementti vastaa kohdearvoa, liitä sen indeksi res_list-luetteloon.Kun silmukka on valmis , palauta res_list tulosteena.

Python 3




# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list: '> +> str>(test_list))> # using a for loop to find indices for 3> res_list>=> []> for> i>in> range>(>len>(test_list)):> >if> test_list[i]>=>=> 3>:> >res_list.append(i)> # printing resultant list> print>(>'New indices list: '> +> str>(res_list))>

>

>

Lähtö

Original list: [1, 3, 4, 3, 6, 7] New indices list: [1, 3]>

Aika monimutkaisuus: O(n) , jossa n on syöttöluettelon testi_lista pituus.
Aputila: O(k) , jossa k on tavoitearvon esiintymisten lukumäärä.

Etsi kohteen indeksi käyttämällä list.index()-menetelmää, jossa on while-silmukka

Alusta tyhjän luettelon indeksit tallentaaksesi annetun arvon indeksit.Alusta muuttuja i arvoon -1. Suorita while-silmukka, joka jatkuu, kunnes break-lause kohdataan.Käytä while-silmukan sisällä list.index() menetelmä löytää annetun arvon indeksi listasta alkaen indeksistä i + 1. Jos indeksi löytyy, lisää se indeksiluetteloon ja päivitä i:n arvo löydettyyn indeksiin.Jos indeksiä ei löydy, katkaise while-silmukka.Tulosta hakemistoluettelo.

Python 3




yhteys java mysql
# initializing list> my_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(my_list))> # using list.index() method with a while loop to find indices for 3> indexes>=> []> i>=> ->1> while> True>:> >try>:> >i>=> my_list.index(>3>, i>+> 1>)> >indexes.append(i)> >except> ValueError:> >break> print>(>'New indices list : '> +> str>(indexes))>

>

>

Lähtö

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Aika monimutkaisuus: O(n),Lista.index()-menetelmän aikamonimutkaisuus on O(n) pahimmassa tapauksessa, koska sen täytyy iteroida luetteloa löytääkseen annetun arvon indeksin. While-silmukalla on myös aikamonimutkaisuus O(n):sta pahimmassa tapauksessa, koska sen täytyy iteroida luetteloa löytääkseen kaikki annetun arvon esiintymät.
Aputila: O(1),Indeksilistan ja i-muuttujan käyttämä tila on vakio eikä riipu syöteluettelon koosta, joten aputilan kompleksisuus on O(1).