Estructuras de datos

Tuplas


Las tuplas en Python son una estructura de datos muy similar a las listas, con una diferencia clave: son inmutables, es decir, no pueden ser modificadas una vez que han sido creadas. Esto las hace ideales para representar datos que no deben cambiar durante la ejecución del programa.


¿Cómo se crea una tupla?

Las tuplas se definen utilizando paréntesis (), aunque en algunos casos pueden crearse incluso sin ellos, separando los elementos por comas:

# Tupla con paréntesis
coordenadas = (10.0, 20.0)

# Tupla sin paréntesis
colores = "rojo", "verde", "azul"

# Tupla de un solo elemento (se necesita la coma)
uno = (5,)


Propiedades de las tuplas:

  • Inmutables: no se pueden modificar, añadir o eliminar elementos.
  • Ordenadas: mantienen el orden de los elementos.
  • Indexadas: permiten acceder a sus elementos mediante índices.
  • Pueden contener distintos tipos de datos.
  • Admiten anidamiento (tuplas dentro de otras tuplas).
  • Pueden usarse como claves de diccionarios (porque son hashables).

Acceso a elementos:

Al igual que en las listas, se accede a los elementos mediante índices:

dias = ("lunes", "martes", "miércoles")
print(dias[0])   # lunes
print(dias[-1])  # miércoles

Inmutabilidad:

Si intentamos modificar una tupla, Python generará un TypeError:

dias[0] = "domingo"  # Error: 'tuple' object does not support item assignment

Tuplas anidadas:

Las tuplas pueden contener otras tuplas u otras estructuras de datos:

info = ("Python", (3, 9), ["estable", "rápido"])
print(info[1][0])  # 3

Conversión de listas a tuplas:

Podemos transformar una lista a una tupla utilizando la función tuple():

numeros = [1, 2, 3]
tupla_numeros = tuple(numeros)
print(tupla_numeros)  # (1, 2, 3)

Iterar tuplas:

Las tuplas se pueden recorrer igual que las listas:

animales = ("perro", "gato", "pez")
for animal in animales:
    print(animal)

Desempaquetado de tuplas:

Podemos asignar los valores de una tupla a múltiples variables en una sola línea.

persona = ("Ana", 30, "México")
nombre, edad, pais = persona
print(nombre)  # Ana
print(edad)    # 30
print(pais)    # México

Métodos de las tuplas:

Las tuplas, al ser inmutables, tienen pocos métodos disponibles. Los dos más comunes son:

1. count(x):

Cuenta cuántas veces aparece elelemento x en la tupla.

letras = ("a", "b", "a", "c", "a")
print(letras.count("a"))  # 3
2. index():

Devuelve el índice de la primera aparición del elemento x. Se puede usar un segundo parámetro opcional (start) para comenzar la búsqueda desde un índice específico.

numeros = (10, 20, 30, 20, 40)
print(numeros.index(20))       # 1
print(numeros.index(20, 2))    # 3

¿Cuándo usar una tupla en lugar de una lista?

Usa una tupla cuando:

  • Los datos no deben cambiar.
  • Necesitas asegurar la integridad de la información.
  • Quieres mejorar el rendimiento (las tuplas consumen menos memoria).
  • Requieres usar los datos como claves en un diccionario.