Si trabajas con listas en Python, tarde o temprano verás este mensaje:
IndexError: list index out of range
Y la reacción habitual es confusión:
¿qué significa exactamente y por qué ocurre?
En este artículo aprenderás:
- Qué es un
IndexError - Por qué aparece “list index out of range”
- Casos comunes donde ocurre
- Cómo solucionarlo paso a paso
- Cómo evitarlo en el futuro
Todo explicado en español claro y con ejemplos reales.
¿Qué significa IndexError: list index out of range?
Este error ocurre cuando intentas acceder a una posición que no existe en una lista.
Recuerda:
- Los índices empiezan en 0
- El último índice es
len(lista) - 1
Ejemplo:
numeros = [10, 20, 30]print(numeros[3])
Error:
IndexError: list index out of range
La lista tiene índices 0, 1, 2.
El índice 3 no existe.
Caso común 1: Confundir longitud con índice
lista = ["a", "b", "c"]print(lista[len(lista)])
Esto provoca error porque:
len(lista)devuelve3- El último índice válido es
2
Solución correcta
print(lista[len(lista) - 1])
O mejor aún:
print(lista[-1])
Caso común 2: Bucles mal definidos
numeros = [1, 2, 3]for i in range(0, len(numeros) + 1): print(numeros[i])
El +1 provoca que el bucle intente acceder a un índice inexistente.
Solución
for i in range(len(numeros)): print(numeros[i])
O forma más segura y clara:
for numero in numeros: print(numero)
Caso común 3: Lista vacía
lista = []print(lista[0])
Error inmediato porque no hay elementos.
Solución
Verificar antes:
if lista: print(lista[0])else: print("La lista está vacía")
Caso común 4: Usar índices fijos sin validar
usuarios = ["Ana", "Luis"]print(usuarios[2])
Esto falla si no sabes cuántos elementos hay.
Solución
if len(usuarios) > 2: print(usuarios[2])
Caso común 5: Acceder a listas anidadas incorrectamente
matriz = [[1, 2], [3, 4]]print(matriz[2][0])
matriz = [[1, 2], [3, 4]]
print(matriz[2][0])
Cómo leer correctamente este error
El mensaje:
IndexError: list index out of range
Te dice exactamente:
- Tipo de error:
IndexError - Problema: el índice está fuera del rango permitido
👉 No es un error misterioso: es un límite violado.
Buenas prácticas para evitar este error
- Usa
len()para conocer el tamaño - Prefiere
for elemento in listacuando sea posible - Usa índices negativos (
-1) para el último elemento - Verifica si la lista está vacía
- No asumas tamaños fijos
Ejemplo práctico seguro
numeros = [5, 10, 15]for i in range(len(numeros)): print(numeros[i])
print(numeros[i])
O mejor:
for numero in numeros: print(numero)
print(numero)
Menos errores, más claridad.
Por qué este error es tan común
Este error aparece porque:
- Los índices empiezan en 0
- Las listas cambian de tamaño
- Los bucles mal definidos son frecuentes
Es normal cometer este error al aprender.
Practicar y entender errores reales
Dominar listas no es solo saber usarlas, sino saber qué hacer cuando fallan.
👉 En SolveConPython.com los retos incluyen escenarios reales donde este error aparece, para que aprendas a detectarlo y solucionarlo sin miedo.
Conclusión
IndexError: list index out of range significa una sola cosa:
estás intentando acceder a algo que no existe.
Si aprendes a:
- Pensar en índices
- Usar
len() - Recorrer listas correctamente
este error dejará de ser un problema y se convertirá en una señal útil.
Siguiente artículo
¿Qué es
KeyErroren Python y cómo solucionarlo?