Python | Maneras de encontrar índices de valor en la lista

Por lo general, necesitamos encontrar el índice en el que se encuentra el valor particular. Hay muchos métodos para lograr eso, usando index()etc. Pero a veces se requiere encontrar todos los índices de un valor particular en caso de que tenga múltiples ocurrencias en la lista.

Analicemos ciertas formas de encontrar índices de valor en una lista dada.

Método #1: 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 la nueva lista e imprimiéndolo. Este es el método básico de fuerza bruta para lograr esta tarea.

# Python3 code to demonstrate 
# finding indices of values
# using naive method 
  
# 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]

 
Método #2: Usar la comprensión de listas

La comprensión de listas es solo la técnica abreviada para lograr la tarea de fuerza bruta, solo usa líneas de códigos menores para lograr la tarea y, por lo tanto, ahorra tiempo a los programadores.

# Python3 code to demonstrate 
# finding indices of values
# using list comprehension 
  
# 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]

 
Método n.º 3: Usandoenumerate()
Usando enumerate()podemos lograr una tarea similar, esta es una técnica un poco más rápida que la anterior y, por lo tanto, se recomienda su uso sobre la técnica de comprensión de listas.

# Python3 code to demonstrate 
# finding indices of values
# using enumerate()
  
# 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))
Producción:

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

 
Método #4: Usarfilter()

Este es otro método más que se puede emplear para lograr esta tarea en particular, filter()generalmente puede realizar las tareas de filtrado y, por lo tanto, también se puede usar en esta situación para lograr esta tarea.

# Python3 code to demonstrate 
# finding indices of values
# using filter()
  
# 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]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *