Ir al contenido principal

Método index() de Python List explicado con ejemplos

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

En Python, una estructura de datos te ayuda a organizar y almacenar datos de manera eficiente. Una estructura común y versátil es una lista, que puede contener diferentes 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 presentará las listas y, a continuación, verás algunos ejemplos sencillos de cómo trabajar con la función index().

Para ejecutar fácilmente todo el código de ejemplo de este tutorial, puedes crear un cuaderno de trabajo de DataLab de forma gratuita que tiene Python preinstalado y contiene 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 específico en una secuencia, como una cadena o una lista, utilizando su posición o número de índice. La indexación en Python comienza 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 "Hola", podemos acceder a la primera letra "H" utilizando su índice 0 mediante la notación entre corchetes: string[0].

La función integrada index() de Python es una herramienta útil para encontrar el índice de un elemento específico 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 ValueError. 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 comienza en 0).

La función index() es una potente herramienta en Python, ya que simplifica el proceso de búsqueda del í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 conjuntos de datos grandes o estructuras complejas, donde la búsqueda manual puede llevar mucho tiempo y ser propensa 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 en el que aparece el elemento buscado.

Probémoslo:

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

Si se busca algún elemento que no está presente, devuelve un error ValueError (No se ha encontrado ningún elemento).

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

Trabajar con cadenas

Probémoslo con elementos de cadena:

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

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

Encontrar la primera aparición

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
print(list_numbers.index(element)) # 0

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

Esto es lo que está sucediendo internamente: El índice recorre todos los valores empezando por la primera posición (índice 0) y busca el elemento que estás buscando. Cuando encuentra el valor, devuelve la posición y sale del sistema. Sin embargo, esto no es muy eficiente cuando se trata de una lista grande y necesitas obtener la posición de algo hacia el final de la lista.

Uso de los parámetros Start y Stop

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

Por lo tanto, 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 rango; de lo contrario, obtendrás un error ValueError (No se ha encontrado el valor de rango), como se muestra a continuación.

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

Buscar todas las ocurrencias

Dado que la expresión regular index() solo devuelve la primera coincidencia con un objeto, puedes utilizar la comprensión de listas o una 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]

# List comprehension
print([i for i, n in enumerate(list_numbers) if n == 3]) # [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 cuanto a 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 aprender la función index() en Python! Ya has visto cómo te puede ayudar a trabajar con listas. También se te han presentado algunos conceptos nuevos. Para obtener más información sobre la comprensión de listas, consulta el tutorial de DataCamp sobre comprensión de listas en Python. El tutorial sobre iteradores de Python de DataCamp ofrece más información sobre generadores y expresiones de generador.

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é sucede si varios valores coinciden con el elemento que estoy buscando?

El método « index() » solo 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 usar index() con tuplas o cadenas?

Sí. El método ` index() ` funciona con cualquier tipo de secuencia, incluyendo 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

¿Hay alguna forma de gestionar ValueError de forma elegante?

Sí, envuelve la llamada 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 búsquedas inversas. 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 un -1 en lugar de generar 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 usar index() con listas anidadas?

Sí, pero solo 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 se encuentra fuera del rango de índices válidos para una lista. Por ejemplo, si una lista tiene 5 elementos, los índices válidos son del 0 al 4. Si intentas acceder a un índice mayor o igual a 5, aparecerá este error.

Para evitar el error «índice de lista fuera de rango», debes asegurarte de que el índice al que intentas acceder se encuentra 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 se encuentra dentro del rango de índices válidos.

¿Qué es el error «los índices de la lista deben ser números enteros»?

El error «los índices de la lista deben ser números enteros» se produce cuando intentas utilizar un valor que no es un número entero como índice de la lista. Por ejemplo, si intentas utilizar un número de punto flotante o una cadena como índice de lista, obtendrás este error.

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

Temas

¡Aprende más sobre Python con estos cursos!

Curso

Introducción a Python

4 h
6.5M
Domina los fundamentos del análisis de datos con Python en cuatro horas y descubre sus paquetes más usados.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

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

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

Tutorial

Guía completa de listas vacías en Python

Aprenda las principales operaciones con listas y los casos de uso de las listas vacías en Python.
Adel Nehme's photo

Adel Nehme

Ver másVer más