Hemos visto que en Python accedemos a los elementos de una lista, tupla y string mediante un subíndice que comienza a numerarse a partir de cero:

tupla=(2,4,6,8,10)
print tupla[0]   # 2
lista=[2,4,6,8,10]
print lista[0]   # 2
cadena='hola'
print cadena[0]   # h

Si queremos acceder a la última componente podemos hacerlo:

tupla=(2,4,6,8,10)
print tupla[len(tupla)-1] # 10

Pero Pyton tiene integrado en el lenguaje el acceso de los elementos de la secuencia mediante índices negativos, por ejemplo si queremos acceder a la última componente luego podemos hacerlo con la siguiente sintaxis:

tupla=(2,4,6,8,10)
print tupla[-1]   # 10
lista=[2,4,6,8,10]
print lista[-1]   # 10
cadena='hola'
print cadena[-1]   # a

Es mucho más cómodo utilizar esta segunda forma para acceder a los elementos de una lista, tupla o cadena de caracteres.

Si queremos imprimir los elementos de una tupla en forma inversa (es decir desde el último elemento hasta el primero) podemos hacerlo con el siguiente algoritmo:

tupla=(2,4,6,8,10)
indice=-1
for x in range(0,len(tupla)):
    print tupla[indice] # 10 8 6 4 2 
    indice=indice-1

Problema resuelto

Inicializar una variable con un valor aleatorio comprendido entre 1 y 1000000, verificar si es capicúa, es decir si se lee igual de izquierda a derecha como de derecha a izquierda.


Problema Propuesto

Definir una lista con una serie de elementos. Intercambiar la información del primero con el último de la lista.


lista=['juan','ana','luis','pedro']
print lista
print '<br>'
aux=lista[0]
lista[0]=lista[-1]
lista[-1]=aux
print lista
    
Ver solución