Q: ¿Por qué va a devolver un l[10]
n IndexError
, pero l[-1]
devuelve 0
?
A: Porque los valores de índice en Python (como en muchos otros idiomas) son basados en cero. Eso significa que el primer artículo se almacena en el índice 0
.
Su lista
l = [1,2,3,4,5,6,7,8,9,0]
tiene 10 elementos. Dado que el índice comienza en 0
, el último elemento estará en el índice 9
. Cuando intenta acceder a su lista en el índice 10
, Python correctamente lanza una excepción IndexError
para decirle que este no es un valor de índice válido y está fuera de límites.
Python también utiliza la convención de valores de índice negativos para acceder a los elementos del "final" de una lista o secuencia. El valor del índice -1
indica el último elemento en la lista, -2
el penúltimo, etc. Como el último elemento en su lista es 0
, esto es lo que l[-1]
devuelve.
@ La respuesta de Lattyware ya le muestra cómo generar/lanzar una excepción, espero que esto responda a su pregunta inicial.
¿Qué quiere decir con "ningún elemento anterior en la lista"? Si por "anterior" quiere decir "a la izquierda del elemento actual", la respuesta de Lattyware debería ser muy útil. Pero no puedo evitar preguntarme si te refieres a algo más. –