logo

Python | Maneres de trobar índexs de valor a la llista

Normalment, necessitem trobar l'índex, en el qual es troba el valor particular. Hi ha molts mètodes per aconseguir-ho, utilitzant index(), etc. Però de vegades requereixen trobar tots els índexs d'un valor particular en cas que tingui múltiples ocurrències a la llista. Parlem de determinades maneres de trobar índexs de valor a la llista donada de Python .

Maneres de trobar índexs de valor a la llista

A continuació es mostren els mètodes que tractarem en aquest article:



Trobeu l'índex d'un element utilitzant el mètode ingenu

Podem aconseguir aquesta tasca iterant per la llista i comprovant aquest valor i només afegint l'índex de valors en una llista nova i imprimint-ho. Aquest és el mètode bàsic de força bruta per aconseguir aquesta tasca.

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))>

>

>

Sortida

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

Complexitat temporal: O(n)
Espai auxiliar: O(n)

matriu de cadenes en llenguatge c

Trobeu l'índex d'un element mitjançant la comprensió de llista

Comprensió de llista és només la tècnica d'abreviatura per aconseguir la tasca de força bruta, només utilitza línies de codis menors per aconseguir la tasca i, per tant, estalvia temps als programadors.

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))>

>

>

Sortida

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

Complexitat temporal: O(n)
Espai auxiliar: O(n)

Trobeu l'índex d'un element utilitzant Enumerate() F unció

Utilitzant enumerar() podem aconseguir una tasca similar, aquesta és una tècnica una mica més ràpida que l'anterior i, per tant, es recomana utilitzar-la per sobre de la tècnica de comprensió de llistes.

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))>

proves de compatibilitat

>

>

Sortida

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

Complexitat temporal: O(n)
Espai auxiliar: O(n)

Trobeu l'índex d'un element mitjançant filter() F unció

Aquest és un altre mètode que es pot utilitzar per aconseguir aquesta tasca en particular, filtre () normalment és capaç de realitzar les tasques de filtratge i, per tant, també es pot utilitzar en aquesta situació per aconseguir aquesta tasca.

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))>

>

>

Sortida

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

Complexitat temporal: O(n)
Espai auxiliar: O(n)

Trobeu l'índex d'un element mitjançant la biblioteca numpy

Aquest programa utilitza el biblioteca numpy per convertir una llista determinada en una matriu, troba els índexs del valor donat a la matriu i converteix el resultat matriu numpy tornar a una llista. Finalment, imprimeix la llista d'índexs.

Python 3




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))>

>

>

SORTIDA:

New indices list : [1, 3]>

Complexitat temporal: O(n), on n és la longitud de la llista d'entrada.
Espai auxiliar: O(n), perquè crea una nova matriu numpy amb la mateixa longitud que la llista d'entrada.

Trobeu l'índex d'un element utilitzant un bucle for

Inicialitzeu una llista buida anomenada res_list per emmagatzemar els índexs dels valors objectiu. Itereu per cada element de la llista d'entrada test_list utilitzant un bucle for. Si l'element actual coincideix amb el valor objectiu, afegiu-ne l'índex a la res_list. Un cop finalitzat el bucle , retorna la res_list com a sortida.

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))>

>

>

Sortida

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

Complexitat temporal: O(n) , on n és la longitud de la llista d'entrada llista_test.
Espai auxiliar: O(k) , on k és el nombre d'ocurrències del valor objectiu.

Trobeu l'índex d'un element mitjançant el mètode list.index() amb un bucle while

Inicialitzar una llista buida d'índexs per emmagatzemar els índexs del valor donat. Inicialitzar una variable i a -1. Executar un bucle while que continua fins que es trobi la instrucció break. Dins del bucle while, utilitzeu el bucle while. list.index() mètode per trobar l'índex del valor donat a la llista a partir de l'índex i + 1. Si es troba l'índex, afegiu-lo a la llista d'índexs i actualitzeu el valor de i a l'índex trobat. Si no es troba l'índex, trenca el bucle while.Imprimeix la llista d'índexs.

Python 3




json des de l'objecte 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))>

>

>

Sortida

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

Complexitat temporal: O(n), El mètode list.index() té una complexitat de temps de O (n) en el pitjor dels casos perquè ha de recórrer la llista per trobar l'índex del valor donat. El bucle while també té una complexitat de temps. d'O(n) en el pitjor dels casos perquè ha de recórrer la llista per trobar totes les ocurrències del valor donat.
Espai auxiliar: O(1),L'espai utilitzat per la llista d'índexs i la variable i és constant i no depèn de la mida de la llista d'entrada, de manera que la complexitat de l'espai auxiliar és O(1).