Encuentra el índice de un elemento en una lista en Python

Rayven Esplanada 30 enero 2023
  1. Utilice el método List index() para encontrar el índice de una lista en Python
  2. Utilice numpy.where() para encontrar el índice de una lista en Python
Encuentra el índice de un elemento en una lista en Python

Este tutorial demostrará cómo encontrar la posición o el índice de un elemento en una lista de Python.

Utilice el método List index() para encontrar el índice de una lista en Python

La lista de Python tiene un método incorporado llamado index(), que acepta un solo parámetro que representa el valor para buscar dentro de la lista existente. La función devuelve el índice de la primera aparición que encuentra a partir del índice 0 independientemente de cuántas veces se produzca dentro de la lista.

Por ejemplo, declare una lista con un valor repetido de 20 y llame a la función index(20) e imprima lo que devuelve.

lst = [13, 4, 20, 15, 6, 20, 20]

print(lst.index(20))

Producción :

2

La primera aparición del valor 20 que se encuentra dentro del array lst fue en el índice 2, que es el resultado de la llamada a la función. Los otros elementos con el mismo valor se ignoran porque ya ha encontrado una coincidencia dentro de la lista.

¿Qué sucede cuando un valor no existe dentro de la lista dada, y llamamos a index() pasando el valor que no existe? Tomemos esto por ejemplo.

lst = [13, 4, 20, 15, 6, 20, 20]

print(lst.index(21))

Producción :

ValueError: 21 is not in list

La función arrojará un error si el índice no se encuentra en la lista. En algunos casos, esto puede ser desfavorable para invocar un error. Para evitar esto, capture el error con un bloque try...except y hágalo de modo que si el índice no existe dentro de la lista, asígnelo como -1.

lst = [13, 4, 20, 15, 6, 20, 20]

try:
    ndx = lst.index(21)
except:
    ndx = -1

print(ndx)

Producción :

-1

De esta forma, no será necesario invocar un error explícito y el programa podrá continuar ejecutándose después de la operación.

Utilice numpy.where() para encontrar el índice de una lista en Python

El módulo NumPy tiene una función predefinida llamada where() que se ocupa de ubicar varios elementos dentro de una lista y acepta una condición.

En este caso, utilizaremos exclusivamente where() para localizar los índices de un valor dado. A diferencia de la función incorporada index(), la función where() puede devolver una lista de índices donde se encuentra el valor si existe más de una vez dentro de una lista. Esto es útil si necesita todas las apariciones del valor en lugar de solo la primera ocurrencia.

El primer paso es convertir una lista de Python en un array NumPy. Para hacer esto, llame a la función np.array().

import numpy as np

lst = np.array(lst=[13, 4, 20, 15, 6, 20, 20])

Después de inicializar el array NumPy, solo necesitamos completar el primer parámetro de where(). Inicialice el primer parámetro como lst == 20 para localizar los índices de la lista dada con el valor 20.

import numpy as np

lst = [13, 4, 20, 15, 6, 20, 20]

lst = np.array(lst)

result = np.where(lst == 20)

print(result)

Producción :

(array([2, 5, 6]),)

Dado que NumPy se ocupa principalmente de matrices, la función where() devuelve una tupla de matrices en lugar de una sola lista. Si se prefiere generar sólo la lista única, entonces llame al primer índice del resultado y extráigalo usando print().

import numpy as np

lst = [13, 4, 20, 15, 6, 20, 20]

lst = np.array(lst)

result = np.where(lst == 20)

print(result[0])

Producción :

[2 5 6]

Tenga en cuenta que los Arrays NumPy están delimitadas por un solo espacio en blanco en lugar de las comas normales.

En resumen, la función index() es la forma más fácil de encontrar la posición de un elemento dentro de una lista de Python. Aunque, esta función solo devuelve el índice de la primera aparición del valor dado.

Para devolver múltiples índices si existen múltiples instancias del valor, entonces puede optar por usar la función where() en el módulo NumPy.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Artículo relacionado - Python List