Python logo - Curso de Python desde cero

Curso de Python: Las Tuplas

Vemos las características de esta estructura que es la tupla

¡Saludos! Estamos de vuelta en otro emocionante capítulo de nuestro curso de programación en Python, donde continuamos explorando los fundamentos esenciales del lenguaje.

Los primeros pasos en cualquier lenguaje de programación pueden parecer un desafío, ya que antes de poder crear proyectos interesantes, es crucial dominar la sintaxis. Aunque este proceso puede parecer un poco abrumador al principio, no se preocupen, pronto estaremos listos para embarcarnos en proyectos emocionantes y creativos utilizando este versátil lenguaje de programación.

En esta ocasión, vamos a adentrarnos en otro concepto fundamental: las tuplas. Si ya comprendemos el concepto de las listas en Python y cómo funcionan, no tendrán ningún problema en asimilar las tuplas, ya que comparten similitudes, aunque con algunas restricciones notables.

Qué son las tuplas en Python

Hablemos de las tuplas en Python, una estructura de datos que presenta interesantes diferencias en comparación con las listas.

En esencia, una tupla es similar a una lista, con una diferencia crucial: las tuplas son inmutables, lo que significa que una vez que se crean, no se pueden modificar agregando, eliminando o moviendo elementos. Esto les confiere una cualidad única de estabilidad a lo largo del tiempo.

Es importante destacar que las funciones comunes que empleamos con listas, como append(), extend() o remove(), no se aplican a las tuplas. En lugar de ello, las tuplas se centran en la extracción de porciones de datos sin alterar la tupla original.

Por ejemplo, al extraer una porción de una tupla, estamos creando una nueva tupla que contiene los elementos deseados sin modificar la tupla original.

A diferencia de las listas, las tuplas no admiten la búsqueda de elementos utilizando el método index(). ACTUALIZACIÓN: Las tuplas sí que permiten realizar búsqueda utilizando el método index, como veremos más adelante.

Ventajas de las Tuplas respecto a las listas

Las restricciones de las tuplas en comparación con las listas pueden resultar ventajosas en ciertas situaciones. Una de las principales ventajas de las tuplas radica en su rapidez de ejecución. Esto se debe a optimizaciones internas que hacen que las tuplas sean más eficientes que las listas en términos de rendimiento.

Además, las tuplas ocupan menos espacio en memoria en comparación con las listas, lo que las convierte en una elección eficaz cuando solo necesitamos recorrer elementos y no realizar modificaciones posteriores.

Otra peculiaridad interesante de las tuplas es su capacidad para formatear cadenas de texto (lo abordaremos en futuras lecciones) y su utilidad como claves en diccionarios (tema que exploraremos más adelante en el curso). Las listas, en contraste, no pueden desempeñar este papel en los diccionarios.

Sintaxis de las Tuplas

La sintaxis para crear una tupla es muy similar a la de las listas, con una pequeña diferencia. Mientras que las listas se definen con corchetes [], las tuplas se encierran entre paréntesis (). Sin embargo, los paréntesis en las tuplas pueden ser opcionales.

nombre_tupla = (elemento1, elemento2, elemento3, etc)

Declarar una tupla en Python

Vamos a ver cuál sería la sintaxis a la hora de crear una tupla. Lo primero que tenemos que hacer es escoger un nombre para la tupla que puede ser el que queráis respetando las convenciones mencionadas en posts anteriores. El nombre seguido del símbolo igual, abriríamos paréntesis y dentro de estos paréntesis los elementos que van a formar parte de la tupla separados por comas.

Para declarar una tupla en Python, seleccionamos un nombre para la tupla y lo seguimos con el símbolo igual. A continuación, encerramos los elementos de la tupla entre paréntesis, separándolos por comas.

mi_primera_tupla = ("Lucio", "BocaNegra", "MariMisi", "Ramón")

Se recomienda utilizar paréntesis para evitar confusiones, especialmente en situaciones como la definición de parámetros de funciones. Sin embargo, si se omite el uso de paréntesis, Python entenderá la definición de la tupla sin problemas.

El índice de las tuplas

Acceder a los elementos de una tupla es una tarea fundamental, y lo hacemos de manera similar a como lo explicamos para las listas en el artículo anterior.

Primero, definimos una tupla en Python utilizando la siguiente sintaxis:

nombre_tupla = (elemento1, elemento2, elemento3, etc)

Luego, para acceder a un elemento específico, necesitamos conocer su índice en la tupla. Los índices comienzan desde 0 y se representan utilizando corchetes. Por ejemplo:

mi_primera_tupla = ("Lucio", "BocaNegra", "MariMisi", "Ramón")
print(mi_primera_tupla[2])  
# Esto imprimirá 'MariMisi'

.index() Conseguir el índice de un elemento

Para obtener el índice de un elemento dentro de una tupla, podemos usar la función index(). A partir de Python 2.6, esta función nos devuelve el índice del elemento especificado. Sin embargo, es importante tener en cuenta que en caso de que el mismo elemento se repita en diferentes posiciones en la tupla, la función index() siempre nos proporcionará el índice del primer elemento coincidente.

print(mi_primera_tupla.index("Ramón"))  
# Esto imprimirá 3

Convertir tuplas en listas y viceversa

A continuación, veamos cómo convertir tuplas en listas y viceversa utilizando dos métodos diferentes.

list() – Convertir Tuplas en Listas

Para transformar una tupla en una lista, empleamos el método list(). Específicamente, creamos una nueva lista y la igualamos al resultado de aplicar list() a la tupla que deseamos convertir.

mi_tupla = ("Lucio", "BocaNegra", "MariMisi", "Ramón")
mi_lista = list(mi_tupla)

La variable mi_lista ahora contiene una lista construida a partir de la tupla original. Al imprimir ambas variables, notaremos que la tupla se distingue por sus paréntesis, mientras que la lista utiliza corchetes.

print(mi_tupla)  
# Esto imprimirá: ('Lucio', 'BocaNegra', 'MariMisi', 'Ramón')

print(mi_lista) 
# Esto imprimirá: ['Lucio', 'BocaNegra', 'MariMisi', 'Ramón']

tuple() – Convertir Listas en Tuplas

Por otro lado, si queremos convertir una lista en una tupla, utilizamos el método tuple(). Veamos un ejemplo rápido:

mi_lista = ["Lucio", "BocaNegra", "MariMisi", "Ramón"]
mi_tupla = tuple(mi_lista)

Hemos realizado el proceso inverso al anterior. Ahora, al imprimir la variable mi_tupla, notaremos que está encerrada entre paréntesis, lo que indica que es una tupla.

Otras operaciones con tuplas

in – Comprobar si un elemento está en la tupla

Las tuplas ofrecen una utilidad esencial: la capacidad de verificar si un elemento se encuentra dentro de ellas. Esto se logra mediante la instrucción in. Si deseamos comprobar si una cadena de caracteres está presente en una tupla, simplemente usamos:

print("MariMisi" in mi_tupla)  
# Esto devolverá True si "MariMisi" está en mi_tupla

.count() – Contar Elementos Repetidos

El método .count() es otra herramienta que nos permite contar cuántas veces aparece un elemento específico en una tupla. Imaginemos que deseamos saber cuántas veces se repite el elemento «Lucio» en nuestra tupla:

print(mi_tupla.count("Lucio"))  
# Esto imprimirá 1

Podemos aplicar este método a cualquier elemento que deseemos rastrear en la tupla.

otra_tupla = (17, "BocaNegra", 17, True, 28.36, 17)
print(otra_tupla.count(17)) 
# Esto imprimirá 3

len() – Determinar la Longitud de una Tupla

El método len() nos resultará útil en el futuro, especialmente cuando trabajemos con bucles. Nos permite determinar la longitud (cantidad de elementos) de una tupla. Simplemente lo aplicamos a la tupla de la que queremos conocer la longitud:

print(len(otra_tupla))  
# Esto imprimirá 6

Tuplas unitarias

Es posible crear lo que se conoce como «tuplas unitarias», que son tuplas con un solo elemento. Sin embargo, es importante recordar que para que Python las reconozca como tuplas unitarias, debemos incluir una coma después del elemento. Si omitimos esta coma, Python no considerará que estamos trabajando con una tupla unitaria. Por ejemplo:

tupla_unitaria = ("texto",)
print(tupla_unitaria)  
# Esto imprimirá ('texto',)

# Si omitimos la coma
tupla_no_unitaria = ("texto")
print(tupla_no_unitaria)  
# Esto será considerado solo como una cadena: 'texto'

Podemos verificar la longitud de una tupla unitaria para confirmar que tiene un solo elemento:

print(len(tupla_unitaria)) 
# Esto imprimirá 1

Empaquetado de tuplas

Hemos mencionado que, al declarar una tupla, los paréntesis son opcionales. Por ejemplo:

mi_tupla = "Lucio", "BocaNegra", "MariMisi", "Ramón"
print(mi_tupla)  
# Esto imprimirá ('Lucio', 'BocaNegra', 'MariMisi', 'Ramón')

Aunque esta notación es válida, puede llevar a confusión, especialmente al trabajar con funciones que reciben parámetros. Por lo tanto, se recomienda utilizar paréntesis para evitar malentendidos. Escribir una tupla sin paréntesis se conoce como «empaquetado de tupla».

Desempaquetado de tuplas

También existe el proceso inverso, conocido como «desempaquetado de tuplas», que permite asignar los elementos de una tupla a diferentes variables de manera sencilla. Supongamos que tenemos una tupla:

mi_tupla = ("Moisés", 27, 7, 1980)

Podemos desempaquetarla de la siguiente manera:

nombre, dia, mes, ano = mi_tupla

Python asignará automáticamente cada valor de la tupla a las variables declaradas en el mismo orden. Podemos verificarlo imprimiendo estas variables:

print(nombre)  # Esto imprimirá 'Moisés'
print(dia)     # Esto imprimirá 27
print(mes)     # Esto imprimirá 7
print(ano)     # Esto imprimirá 1980

Con estas operaciones adicionales, estamos bien equipados para trabajar con tuplas. En el próximo artículo, exploraremos los diccionarios en Python. Les invito a mantenerse atentos para la próxima entrega. ¡Hasta entonces!

Scroll al inicio