8. Tuplas
Vídeo
Notas personales
Una tupla es una lista inmutable que
- no permite añadir, eliminar, mover elementos…
- permite la extracción de porciones, que continuan siendo tuplas, y
- posibilita búsquedas de índice (
.index()
) y comprobaciones de si un elemento pertenece o no a ella (in
).
Son útiles porque
- son más rápidas en cuanto a ejecución se refiere,
- requieren menos espacio (mayor optimización),
- formatean cadenas de texto, y
- pueden utilizarse como claves en un diccionario, a diferencia de las listas.
Su sintaxis es nombre = (elem1, elem2, elem3...)
, siendo el uso de los paréntesis opcional aunque recomendable. El acceso a los elementos funciona como en las listas.
mi_tupla = ("Alexis", 10, 1, 1995)
print(mi_tupla) # ("Alexis", 10, 1, 1995)
print(mi_tupla[1]) # 10
print(mi_tupla[-1]) # 1995
Existen funciones que nos permiten convertir tuplas en listas (list()
) y viceversa (tuple()
):
mi_lista = list(mi_tupla)
print(mi_lista) # ["Alexis", 10, 1, 1995]
mi_tupla = tuple(mi_lista)
print(mi_tupla) # ("Alexis", 10, 1, 1995)
Comprobamos la pertenencia de un elemento a la tupla mediante in
:
print("Alexis" in mi_tupla) # True
print(3.14 in mi_tupla) # False
Con .count()
obtenemos el número de elementos que se encuentran dentro de una tupla:
mi_tupla = ("Alexis", 1, 2, 2, True, 2, "Alexis")
print(mi_tupla.count("Alexis")) # 2
print(mi_tupla.count(1)) # 2 (True cuenta como 1)
print(mi_tupla.count(2)) # 3
El método len
nos permite hallar la longitud de una tupla, siendo el índice del último elemento igual a len - 1
:
print(len(mi_tupla)) # 7
print(mi_tupla[len(mi_tupla) - 1]) # "Alexis"
Podemos crear tuplas unitarias siguiendo el patrón nombre = (elem,)
:
mi_tupla = ("Alexis",)
print(type(mi_tupla)) # <class 'tuple'>
print(len(mi_tupla)) # 1
Como mencionamos, los paréntesis son opcionales:
mi_tupla = "Alexis", 3.14, True, 10
print(type(mi_tupla)) # <class 'tuple'>
print(mi_tupla) # ("Alexis", 3.14, True, 10)
Esta sintaxis se conoce como empaquetado de tupla y hemos de ser cautos, pues en un futuro, al combinarla con el uso de funciones, puede dar lugar a confusiones.
El proceso inverso, desempaquetado de tuplas, nos permite asignar los elementos de una tupla a diferentes variables:
mi_tupla = ("Alexis", 3.14, True, 10)
nombre, pi, alto, mes = mi_tupla
print(nombre) # Alexis
print(pi) # 3.14
print(alto) # True
print(mes) # 10
Código fuente
El código fuente y los posibles ficheros externos generados correspondientes a esta lección se encuentran disponibles para su consulta en la carpeta /lecciones/08/
del
repositorio.