Por lo general, necesitamos encontrar el índice en el que se encuentra el valor particular. Hay muchos métodos para lograrlo, usando index(), etc. Pero a veces es necesario encontrar todos los índices de un valor particular en caso de que tenga varias apariciones en la lista. Analicemos ciertas formas de encontrar índices de valor en la lista dada de Pitón .
Formas de encontrar índices de valor en la lista.
A continuación se detallan los métodos que cubriremos en este artículo:
- Usando el método ingenuo
- Usando Comprensión de listas
- Usando Función enumerar()
- Usando Función filtro()
- Usando Biblioteca numerosa
- Usando un en bucle
- Usando Método list.index() con un mientras bucle
Encuentre el índice de un artículo usando el método ingenuo
Podemos lograr esta tarea iterando a través de la lista y verificando ese valor y simplemente agregando el índice de valor en una nueva lista e imprimiéndolo. Este es el método básico de fuerza bruta para lograr esta tarea.
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))> |
>
>Producción
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complejidad del tiempo: En)
Espacio Auxiliar: En)
conjuntos en java
Encuentre el índice de un elemento mediante la comprensión de listas
Comprensión de listas es solo la técnica abreviada para lograr la tarea de fuerza bruta, solo utiliza menos líneas de códigos para realizar la tarea y, por lo tanto, ahorra tiempo a los programadores.
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))> |
>
>Producción
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complejidad del tiempo: En)
Espacio Auxiliar: En)
Encuentre el índice de un artículo usando Enumerate() F unción
Usando enumerar() podemos lograr una tarea similar, esta es una técnica ligeramente más rápida que la anterior y, por lo tanto, se recomienda utilizarla sobre la técnica de comprensión de listas.
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))> |
>
>
los primeros mukersProducción
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complejidad del tiempo: En)
Espacio Auxiliar: En)
Encuentre el índice de un artículo usando filter() F unción
Este es otro método más que se puede emplear para lograr esta tarea en particular, filtrar() normalmente es capaz de realizar las tareas de filtrado y, por lo tanto, también se puede utilizar en esta situación para realizar esta tarea.
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))> |
>
>Producción
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complejidad del tiempo: En)
Espacio Auxiliar: En)
Encuentre el índice de un artículo usando la biblioteca numpy
Este programa utiliza el biblioteca numerosa para convertir una lista dada en una matriz, encuentra los índices del valor dado en la matriz y convierte el resultado matriz numerosa volver a una lista. Finalmente, imprime la lista de índices.
Python3
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))> |
>
>
PRODUCCIÓN:
New indices list : [1, 3]>
Complejidad del tiempo: O(n), donde n es la longitud de la lista de entrada.
Espacio auxiliar: O(n), porque crea una nueva matriz numpy con la misma longitud que la lista de entrada.
Encuentre el índice de un elemento usando un bucle for
Inicialice una lista vacía llamada res_list para almacenar los índices de los valores objetivo. Repita cada elemento en la lista de entrada test_list usando un bucle for. Si el elemento actual coincide con el valor objetivo, agregue su índice a res_list. Una vez finalizado el bucle , devuelve res_list como salida.
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))> |
>
>Producción
Original list: [1, 3, 4, 3, 6, 7] New indices list: [1, 3]>
Complejidad del tiempo: O (n) , donde n es la longitud de la lista de entrada test_list.
Espacio auxiliar: O(k) , donde k es el número de apariciones del valor objetivo.
Encuentre el índice de un elemento usando el método list.index() con un bucle while
Inicialice una lista vacía de índices para almacenar los índices del valor dado. Inicialice una variable i a -1. Ejecute un bucle while que continúe hasta que se encuentre la instrucción break. Dentro del bucle while, use el lista.index() método para encontrar el índice del valor dado en la lista a partir del índice i + 1. Si se encuentra el índice, agréguelo a la lista de índices y actualice el valor de i al índice encontrado. Si no se encuentra el índice, rompa el bucle while. Imprime la lista de índices.
Python3
configuración del navegador web
# 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))> |
>
>Producción
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complejidad del tiempo: O(n), el método list.index() tiene una complejidad temporal de O(n) en el peor de los casos porque necesita iterar a través de la lista para encontrar el índice del valor dado. El bucle while también tiene una complejidad temporal de O(n) en el peor de los casos porque necesita recorrer la lista para encontrar todas las apariciones del valor dado.
Espacio Auxiliar: O (1), el espacio utilizado por la lista de índices y la variable i es constante y no depende del tamaño de la lista de entrada, por lo que la complejidad del espacio auxiliar es O (1).