Indices negativos en tuplas, listas y string |
|
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
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.
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