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