Saltar al contenido principal

Método Python List index() Explicado con Ejemplos

Aprende a utilizar la función index() de Python para encontrar la posición de los elementos en las listas.
Actualizado 28 mar 2025  · 6 min de lectura

En Python, una estructura de datos te ayuda a organizar y almacenar datos de forma eficaz. Una estructura común y versátil es una lista, que puede contener distintos tipos de datos en un orden específico. Python también proporciona muchas funciones o métodos 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 introducirá en las listas, y después verás algunos ejemplos sencillos de cómo trabajar con la función index().

Para ejecutar fácilmente tú mismo todo el código de ejemplo de este tutorial, puedes crear gratuitamente un libro de trabajo DataLab que tenga Python preinstalado y contenga todos los ejemplos de código.

¿Qué es la indexación en Python?

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

La función incorporada de Python index() es una herramienta útil para encontrar el índice de un elemento concreto en una secuencia. Esta función toma un argumento que representa el valor a 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 ErrorValor. Por ejemplo, si tenemos una lista [1, 2, 3, 4, 5], podemos encontrar el índice del valor 3 llamando a 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 encontrar 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.

Aprende Python desde cero

Domina Python para la ciencia de datos y adquiere habilidades muy demandadas.
Empieza a aprender gratis

¿Qué es la función index()?

El método index() devuelve el índice más bajo de la lista donde aparece el elemento buscado.

Vamos a probarlo:

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

Si se busca algún elemento que no está presente, devuelve un ValueError.

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

Trabajar con cuerdas

Intentémoslo con elementos de cadena:

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

Nota: Al buscar cadenas, index() distingue entre mayúsculas y minúsculas. Por ejemplo, 'Hello'.index('h') creará un ValueError.

Encontrar la primera ocurrencia

Imagina que tienes más de una instancia de un elemento, entonces 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 primero en la primera posición o índice 0 en Python.

Esto es lo que ocurre internamente: El índice recorre todos los valores a partir de la 1ª posición (índice 0), buscando el elemento que buscas. Cuando encuentra el valor - devuelve la posición y sale del sistema. Sin embargo, esto no es demasiado eficaz cuando recorres una lista grande, y necesitas obtener la posición de algo hacia el final de la lista.

Utilizar los parámetros de inicio y parada

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 sólo cuando estés completamente seguro del alcance; de lo contrario, obtendrás un 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

Encontrar todas las ocurrencias

Como index() sólo devuelve la primera coincidencia con un objeto, puedes utilizar la comprensión de listas o la expresión generadora si necesitas las posiciones de más coincidencias en 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

Los generadores son eficientes en memoria porque producen elementos de uno en uno, en lugar de almacenar todos los resultados como las comprensiones de listas.

Reflexiones finales

¡Enhorabuena, acabas de conocer la función index() en Python! Ya has visto cómo puede ayudarte a trabajar con listas. También se te han presentado algunos conceptos nuevos. Para saber más sobre la comprensión de listas, consulta el tutorial sobre 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 generadoras.

Certifícate en el puesto de Científico de Datos de tus sueños

Nuestros programas de certificación te ayudan a destacar y a demostrar que tus aptitudes están preparadas para el trabajo a posibles empleadores.

Consigue tu Certificación
Timeline mobile.png

Sejal Jaiswal's photo
Author
Sejal Jaiswal
LinkedIn

Llevo varios sombreros: Desarrollador de Software, Programador, Científico de Datos, Desarrollador de Inteligencia de Negocio, Propietario de Producto

Preguntas frecuentes

¿Qué ocurre si varios valores coinciden con el elemento que busco?

El método index() sólo devuelve el índice de la primera aparición del elemento coincidente. Si necesitas todas las posiciones, utiliza una comprensión de lista con enumerate().

¿Puedo utilizar index() con tuplas o cadenas?

Sí. El método index() funciona con cualquier tipo de secuencia, incluidas tuplas y cadenas:

my_tuple = (1, 2, 3, 2)
print(my_tuple.index(2))  # Output: 1

text = "hello world"
print(text.index('o'))    # Output: 4

¿Existe alguna forma de gestionar ValueError con elegancia?

Sí, envuelve la llamada a index() en un bloque try...except para evitar fallos si no se encuentra el elemento:

my_list = [1, 2, 3]
try:
    print(my_list.index(4))
except ValueError:
    print("Element not found.")

¿Cómo puedo buscar desde el final de la lista?

El método index() no admite la búsqueda inversa. Para encontrar la última aparición, invierte la lista manualmente o utiliza una comprensión:

my_list = [1, 2, 3, 2, 1]
last_index = len(my_list) - 1 - my_list[::-1].index(2)
print(last_index)  # Output: 3

¿En qué se diferencia index() de find()?

El método find() se utiliza con cadenas y devuelve -1 en lugar de lanzar un error cuando no se encuentra el valor. Las listas no tienen un método find().

text = "hello"
print(text.find('e'))  # Output: 1
print(text.find('z'))  # Output: -1

¿Puedo utilizar index() con listas anidadas?

Sí, pero sólo en el nivel superior. index() no busca dentro de estructuras anidadas.

nested_list = [[1, 2], [3, 4]]
print(nested_list.index([3, 4]))  # Output: 1
# This won't work: nested_list.index(3)

¿Qué es el error "índice de lista fuera de rango"?

El error "índice de lista fuera de rango" se produce cuando intentas acceder a un índice que está fuera del rango 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 "índice de lista fuera de rango", debes asegurarte de que el índice al que intentas acceder está dentro del rango 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 rango de índices válidos.

¿Qué es el error "los índices de la lista deben ser enteros"?

El error "los índices de lista deben ser enteros" se produce cuando intentas utilizar un valor no entero como índice de lista. Por ejemplo, si intentas utilizar un número en coma flotante o una cadena como índice de una lista, obtendrás este error.

Para evitar el error "los índices de lista deben ser enteros", debes asegurarte de que utilizas un valor entero como índice de lista. Si necesitas utilizar un valor no entero como índice, puedes convertirlo a entero utilizando la función int().

Temas

¡Aprende más sobre Python con estos cursos!

Curso

Introduction to Python

4 hr
6.3M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial y Ejemplos de Funciones y Métodos de Listas en Python

Conozca las funciones y métodos de lista de Python. Siga ahora ejemplos de código de list() y otras funciones y métodos de Python.
Abid Ali Awan's photo

Abid Ali Awan

7 min

Tutorial

Función Print() de Python

Aprenda cómo puede aprovechar la capacidad de una simple función de impresión de Python de varias maneras con la ayuda de ejemplos.
Aditya Sharma's photo

Aditya Sharma

10 min

Tutorial

Cómo eliminar un elemento de una lista en Python

Comprende cómo eliminar elementos de una lista en Python. Familiarízate con métodos como remove(), pop() y del para la gestión de listas.
Allan Ouko's photo

Allan Ouko

7 min

Tutorial

Matrices en Python

Matrices en Python con ejemplos de código. Aprende a crear e imprimir matrices con Python NumPy hoy mismo.
DataCamp Team's photo

DataCamp Team

3 min

Tutorial

Python Copy List: Lo que debes saber

Comprende cómo copiar listas en Python. Aprende a utilizar las funciones copy() y list(). Descubre la diferencia entre copias superficiales y profundas.
Allan Ouko's photo

Allan Ouko

7 min

Tutorial

Tutorial de funciones de Python

Un tutorial sobre funciones en Python que cubre cómo escribir funciones, cómo invocarlas y mucho más.
Karlijn Willems's photo

Karlijn Willems

14 min

Ver másVer más