Parasti mums ir jāatrod indekss, kurā atrodas konkrētā vērtība. Ir daudzas metodes, kā to panākt, izmantojot index() utt. Bet dažreiz ir jāatrod visi noteiktas vērtības indeksi, ja sarakstā ir vairāki gadījumi. Apspriedīsim dažus veidus, kā dotajā sarakstā atrast vērtības indeksus Python .
Veidi, kā sarakstā atrast vērtības indeksus
Tālāk ir norādītas metodes, kuras mēs apskatīsim šajā rakstā:
- Izmantojot naivu metodi
- Izmantojot Saraksta izpratne
- Izmantojot Enumerate() Funkcija
- Izmantojot filtra() funkcija
- Izmantojot Numpy bibliotēka
- Izmantojot a priekš Loop
- Izmantojot list.index() Metode ar kamēr Loop
Atrodiet preces indeksu, izmantojot naivo metodi
Mēs varam sasniegt šo uzdevumu, atkārtojot sarakstu un pārbaudot šo vērtību un vienkārši pievienojot vērtību indeksu jaunam sarakstam un izdrukājot to. Šī ir pamata brutālā spēka metode šī uzdevuma sasniegšanai.
Python3
# 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))> |
>
>Izvade
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Laika sarežģītība: O(n)
Palīgtelpa: O(n)
java concat virkne
Atrodiet vienuma indeksu, izmantojot saraksta izpratni
Saraksta izpratne ir tikai stenogrāfijas paņēmiens brutālā spēka uzdevuma sasniegšanai, tikai izmanto mazākas kodu rindas, lai sasniegtu uzdevumu un tādējādi ietaupa programmētāju laiku.
Python3
# 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))> |
>
>Izvade
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Laika sarežģītība: O(n)
Palīgtelpa: O(n)
Atrodiet preces indeksu, izmantojot Enumerate() F attīrīšana
Izmantojot uzskaitīt () mēs varam sasniegt līdzīgu uzdevumu, tas ir nedaudz ātrāks paņēmiens nekā iepriekš, un tāpēc to ieteicams izmantot vairāk nekā saraksta izpratnes paņēmienu.
Python3
# 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))> |
>
>Izvade
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Laika sarežģītība: O(n)
Palīgtelpa: O(n)
Atrodiet preces indeksu, izmantojot filtru () F attīrīšana
Šī ir vēl viena metode, ko var izmantot, lai sasniegtu šo konkrēto uzdevumu, filtrs () parasti spēj veikt filtrēšanas uzdevumus, un tāpēc to var izmantot arī šajā situācijā, lai veiktu šo uzdevumu.
Python3
# 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))> |
>
>Izvade
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Laika sarežģītība: O(n)
Palīgtelpa: O(n)
Atrodiet vienuma indeksu, izmantojot numpy bibliotēku
Šī programma izmanto niecīga bibliotēka lai pārvērstu doto sarakstu masīvā, atrod dotās vērtības indeksus masīvā un pārvērš iegūto numpy masīvs atpakaļ uz sarakstu. Visbeidzot, tas izdrukā indeksu sarakstu.
Python3
polimorfisms java
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))> |
>
>
IZEJA:
New indices list : [1, 3]>
Laika sarežģītība: O(n), kur n ir ievades saraksta garums.
Palīgtelpa: O(n), jo tiek izveidots jauns masīvs ar tādu pašu garumu kā ievades saraksts.
Atrodiet preces indeksu, izmantojot for Loop
Inicializējiet tukšu sarakstu ar nosaukumu res_list, lai saglabātu mērķa vērtību indeksus.Atkārtojiet katru ievades saraksta elementu test_list, izmantojot for cilpu.Ja pašreizējais elements atbilst mērķa vērtībai, pievienojiet tā indeksu res_list.Pēc cilpas pabeigšanas , atgrieziet res_list kā izvadi.
Python3
# 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))> |
>
>Izvade
Original list: [1, 3, 4, 3, 6, 7] New indices list: [1, 3]>
Laika sarežģītība: O(n) , kur n ir ievades saraksta testa_saraksta garums.
Palīgtelpa: O(k) , kur k ir mērķa vērtības gadījumu skaits.
Atrodiet vienuma indeksu, izmantojot list.index() metodi ar while Loop
Inicializējiet tukšu sarakstu indeksus, lai saglabātu dotās vērtības indeksus.Inicializējiet mainīgo i uz -1.Palaidiet while cilpu, kas turpinās, līdz tiek konstatēts pārtraukuma paziņojums.Cilpas while iekšpusē izmantojiet list.index() metode, lai sarakstā atrastu dotās vērtības indeksu, sākot no indeksa i + 1. Ja indekss ir atrasts, pievienojiet to indeksu sarakstam un atjauniniet i vērtību atrastajam indeksam. Ja indekss nav atrasts, pārtrauciet kamēr cilpa.Izdrukājiet indeksu sarakstu.
Python3
savienojuma virkne java
# 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))> |
>
>Izvade
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Laika sarežģītība: O(n), Metodes list.index() laika sarežģītība ir O(n) sliktākajā gadījumā, jo tai ir jāatkārto saraksts, lai atrastu dotās vērtības indeksu. While cilpai ir arī laika sarežģītība no O(n) sliktākajā gadījumā, jo tam ir jāatkārto saraksts, lai atrastu visus dotās vērtības gadījumus.
Palīgtelpa: O(1), Indeksu saraksta un i mainīgā izmantotā telpa ir nemainīga un nav atkarīga no ievades saraksta lieluma, tāpēc palīgtelpas sarežģītība ir O(1).