Saltar al contenido principal
InicioSobre PythonAprender Python

Tutorial de list index() de Python

En este tutorial, aprenderás exclusivamente sobre la función index().
Actualizado feb 2024  · 6 min leer
Lee la versión en inglés 🇺🇲 de este artículo.

Una estructura de datos es una forma de organizar y almacenar datos que permite un acceso y una modificación eficientes. Las listas son un tipo de estructura de datos que almacenan una colección de elementos heterogéneos y son estructuras de datos intrínsecas. Python también proporciona muchas funciones o métodos que puedes utilizar para trabajar con listas.

En este tutorial, aprenderás sobre la función index() de Python. El método index() busca un elemento en la lista y devuelve su posición/índice. En primer lugar, este tutorial te hablará de las listas, y después verás algunos ejemplos sencillos para trabajar con la función index().

¿Qué es la indexación en Python?

En Python, la indexación es el proceso de acceder a un elemento concreto de una secuencia, como una cadena o una lista, utilizando su posición o número de índice. La indexación en Python empieza en 0, lo que significa que el primer elemento de una secuencia tiene un índice de 0, el segundo elemento tiene un índice de 1, y así sucesivamente. Por ejemplo, si tenemos una cadena "Hello", podemos acceder a la primera letra "H" utilizando su índice 0 mediante la notación de corchetes: string[0].

La función integrada de Python index() es una herramienta útil para buscar el índice de un elemento concreto en una secuencia. Esta función toma un argumento que representa el valor que se debe buscar y devuelve el índice de la primera aparición de ese valor en la secuencia.

Si el valor no se encuentra en la secuencia, la función genera un error ValueError. Por ejemplo, si tenemos una lista [1, 2, 3, 4, 5], podemos buscar el índice del valor 3 invocando list.index(3), que devolverá el valor 2 (ya que 3 es el tercer elemento de la lista, y la indexación empieza en 0).

La función index() es una potente herramienta en Python, ya que simplifica el proceso de buscar el índice de un elemento en una secuencia, eliminando la necesidad de escribir bucles o sentencias condicionales. Esta función es especialmente útil cuando se trabaja con grandes conjuntos de datos o estructuras complejas, en los que la búsqueda manual podría llevar mucho tiempo y dar lugar a errores.

Run and edit the code from this tutorial online

Open Workspace

Ejemplos de índices en Python

El método index() devuelve el índice más bajo de la lista en el que aparece el elemento buscado. Si se busca algún elemento que no está presente, se devuelve un error ValueError.

Vamos a probarlo:

list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 3
list_numbers.index(element)
2
list_numbers = [4, 5, 6, 7, 8, 9, 10]
element = 3 # Not in the list
list_numbers.index(element) # Throws a ValueError
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-35-6a006c988b06> in <module>()
      1 list_numbers = [4, 5, 6, 7, 8, 9, 10]
      2 element = 3 # Not in the list
----> 3 list_numbers.index(element) # Throws a ValueError


ValueError: 3 is not in list

Índice de un elemento de cadena

Probémoslo con elementos de cadena:

list_numbers = [1, 'two', 3, 4, 5, 6, 7, 8, 9, 10]
element = 'two'
list_numbers.index(element)
1

¿Qué significa devolver el índice más bajo?

Imagina que tienes más de una instancia de un elemento: index() te dará la primera posición en la que aparece el elemento.

list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
element = 3
list_numbers.index(element)
0

La posición devuelta es 0, porque 3 aparece por primera vez en la primera posición o índice 0 en Python.

Esto es lo que ocurre internamente: index recorre todos los valores empezando por la 1.ª posición (índice 0), buscando el elemento indicado, y, en cuanto encuentra el valor, devuelve la posición y sale del sistema. Sin embargo, esto no es demasiado eficiente cuando recorres una lista grande y debes obtener la posición de algo que está hacia el final de la lista.

index() te ofrece una opción para dar pistas sobre dónde podría estar el valor buscado

list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 7
list_numbers.index(element, 5, 8)
6

Así que la sintaxis es: list_name.index(element, start, stop).

Aquí los valores start y stop son opcionales. De hecho, utilízalo solo cuando estés completamente seguro del intervalo; de lo contrario, obtendrás un error ValueError como se muestra a continuación.

list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 7
list_numbers.index(element, 1, 5)
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-39-b96f4b5e51d5> in <module>()
      1 list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      2 element = 7
----> 3 list_numbers.index(element, 1, 5)


ValueError: 7 is not in list

Comprensión de listas o expresión del generador

Como index() solo devuelve la primera coincidencia con un objeto, puedes utilizar la comprensión de listas o la expresión del generador si necesitas las posiciones de más coincidencias de la lista. He aquí cómo:

list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
[i for i, n in enumerate(list_numbers) if n == 3] # List comprehension
[0, 3, 4, 8]
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
g = (i for i, n in enumerate(list_numbers) if n == 3) # Generator expression
print("Generators store values, the first value here is:", next(g), ". Then the next is:", next(g), "followed by ", next(g),"and finally ", next(g))
Generators store values, the first value here is: 0. Then the next is: 3 followed by  4 and finally  8

Reflexiones finales

Enhorabuena, acabas de conocer la función index() en Python. Has visto cómo puede ayudarte a trabajar con listas. También se te han presentado algunos nuevos conceptos. Para saber más sobre la comprensión de listas, consulta el tutorial de comprensión de listas en Python de DataCamp. El Tutorial de iteradores de Python de DataCamp tiene más información sobre los generadores y las expresiones de los generadores.

Preguntas frecuentes sobre el índice de lista de Python

¿Qué es el error "list index out of range"?

El error "list index out of range" se produce cuando intentas acceder a un índice que está fuera del intervalo de índices válidos para una lista. Por ejemplo, si una lista tiene 5 elementos, los índices válidos son de 0 a 4. Si intentas acceder a un índice mayor o igual que 5, obtendrás este error.

Para evitar el error "list index out of range", debes asegurarte de que el índice al que intentas acceder esté dentro del intervalo de índices válidos para la lista. Puedes utilizar la función len() para obtener la longitud de una lista y comprobar si un índice está dentro del intervalo de índices válidos.

¿Qué es el error "list indices must be integers"?

El error "list indices must be integers" se produce cuando intentas utilizar un valor que no es un entero como índice de lista. Por ejemplo, si intentas utilizar un número de coma flotante o una cadena como índice de lista, obtendrás este error.

Para evitar el error "list indices must be integers", debes asegurarte de que utilizas un valor entero como índice de lista. Si tienes que utilizar un valor que no es un entero como índice, puedes convertirlo a entero utilizando la función int().

¿Cómo puedo encontrar el índice de un elemento en una lista?

Puedes utilizar el método index() de una lista para encontrar el índice de un elemento concreto. Por ejemplo, si my_list es una lista y my_element es un elemento de la lista, puedes encontrar el índice de my_element con my_list.index(my_element).

¿Cómo puedo encontrar todos los índices de un elemento en una lista?

Puedes utilizar una comprensión de listas para encontrar todos los índices de un elemento en una lista. Por ejemplo, si my_list es una lista y my_element es un elemento de la lista, puedes encontrar todos los índices de my_element con [i for i in range(len(my_list)) if my_list[i] == my_element].

Temas

Cursos de Python

Course

Introduction to Python

4 hr
5.5M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

Programación Orientada a Objetos en Python (POO): Tutorial

Aborda los fundamentos de la Programación Orientada a Objetos (POO) en Python: explora las clases, los objetos, los métodos de instancia, los atributos y ¡mucho más!
Théo Vanderheyden's photo

Théo Vanderheyden

12 min

Tutorial de pandas en Python: La guía definitiva para principiantes

¿Estás preparado para comenzar tu viaje de pandas? Aquí tienes una guía paso a paso sobre cómo empezar.
Vidhi Chugh's photo

Vidhi Chugh

15 min

Histogramas en Matplotlib

Aprende sobre histogramas y cómo puedes utilizarlos para obtener información de los datos con la ayuda de matplotlib.
Aditya Sharma's photo

Aditya Sharma

8 min

Tutorial de cadenas en Python

En este tutorial, aprenderás todo sobre las cadenas de Python: trocearlas y encadenarlas, manipularlas y darles formato con la clase Formateador, cadenas f, plantillas y ¡mucho más!
Sejal Jaiswal's photo

Sejal Jaiswal

16 min

Exponentes en Python: Guía completa para principiantes

Domina los exponentes en Python utilizando diversos métodos, desde las funciones integradas hasta potentes bibliotecas como NumPy, y aprovéchalos en situaciones reales para profundizar en su comprensión.
Satyam Tripathi's photo

Satyam Tripathi

9 min

See MoreSee More