Listas y tuplas

Listas y tuplas #

Las listas son las que usan [] y las tuplas(). Ambas sirven para guardar datos. Y ambas están indexadas por 0, es decir, al primer registro se accede por el valor 0.

Los string en si mismos son listas como se explica en pagína de cadenas. Pero mientras que en la cadenas los valores son carácteres en una lista/tupla puede contener cualquier valor.

Ejemplo de inicialización:

tupla=(1,2,3,4,5,6,7)
lista=[8,9,10,11,12]

La diferencia en que la tupla no puede ser modificada durante el programa pero una lista si que se puede. Salvo en las cadenas, que no pueden ser modificadas.

Un truco para obtener el último valor sin usar el LEN es usar el -1. Ejemplo:

tupla=(1,2,3,4,5,6,7)
lista=[8,9,10,11,12]

print("Último valor: ", lista[-1])
print("Penúltimo valor: ", lista[-2])

Resultado:

Último valor:  12
Penúltimo valor:  11

Lista #

Modificar valores #

Para cambiar una lista es tan sencillo al índice y poner un nuevo valor. Ejemplo:

lista=[8,9,10,11,12]

print("Valores antes del cambio:", lista)
# Cambiamos el segundo registro
lista[1]=15
print("Valores después del cambio:", lista)

Resultado:

Valores antes del cambio: [8, 9, 10, 11, 12]
Valores después del cambio: [8, 15, 10, 11, 12]

Borrar valores #

Para modificar valores se usa el método interno de la lista llamado POP. Ejemplo como borrar el último valor:

lista=[8,9,10,11,12]

print("Valores antes:", lista)
lista.pop()
print("Valores después:", lista)

Resultado:

Valores antes: [8, 9, 10, 11, 12]
Valores después: [8, 9, 10, 11]

Para borrar una posición concreta se puede hacer de dos maneras con el método POP o con la sentencia DEL. Ejemplo con POP:

lista=[8,9,10,11,12]

print("Valores antes:", lista)
lista.pop(1)
print("Valores después:", lista)

Resultado:

Valores antes: [8, 9, 10, 11, 12]
Valores después: [8, 10, 11, 12]

Ejemplo con DEL

lista=[8,9,10,11,12]

print("Valores antes:", lista)
del lista[1]
print("Valores después:", lista)

Resultado:

Valores antes: [8, 9, 10, 11, 12]
Valores después: [8, 10, 11, 12]

En ambos casos hay que tener en cuenta que el índice empieza por 0.

Añadir valores #

Para añadir se usa el método APPEND de la lista. Ejemplo:

lista=[8,9,10,11,12]

print("Valores antes:", lista)
lista.append(13)
print("Valores después:", lista)

Resultado:

Valores antes: [8, 9, 10, 11, 12]
Valores después: [8, 9, 10, 11, 12, 13]

Buscar valores #

La opción más simple de buscar valores es con la claúsula in, ejemplo:

3 in [1, 2, 3] # => True

Sublistas #

Es posible tener una sublista dentro de una lista ejemplo:

lista=["valor 1",2, 3.4,["subvalor", 10]]
print("Contenido ", lista)

Resultado:

Contenido  ['valor 1', 2, 3.4, ['subvalor', 10]]

Segmentos #

Igual que en las cadenas también se puede acceder a segmentos. Ejemplo:

lista=[1,2,3,4,5,6]
print("Contenido ", lista[3:5])

Resultado:

Contenido  [4, 5]

Si no se pone el primer valor del segmento se comienza a leer desde el primer valor. Ejemplo:

lista=[1,2,3,4,5,6]
print("Contenido ", lista[:5])

Resultado:

Contenido  [1, 2, 3, 4, 5]

Si queremos leer todos los valores menos el último se puede hacer de la siguiente manera:

lista=[1,2,3,4,5,6]
print("Contenido ", lista[:-1])

Resultado:

Contenido  [1, 2, 3, 4, 5]

Si ponemos menos saldría -2

Contenido  [1, 2, 3, 4]

Y así hasta el inicio del vector.

Si queremos leer el último registro se puede hacer así:

lista=[1,2,3,4,5,6]
print("Contenido ", lista[-1])

Resultado:

Contenido  6

Tuplas #

El acceso a los valores de las tuplas se hace igual que con las listas.

Creación de rangos #

Es posible crear rangos con números preasignados que es útil para hacer contadores o cualquier otra cosa.

Ejemplo:

x = range(6)

for n in x:
   print("Valor: ", n)

Resultado:

Valor:  0
Valor:  1
Valor:  2
Valor:  3
Valor:  4
Valor:  5

Es posible indicarle el incremento en cada valor:

x = range(0,6, 2)
for n in x:
   print("Valor: ", n)

Resultado:

Valor:  0
Valor:  2
Valor:  4