Tuplas

# ─────────────────────────────────────────────
# TUPLAS Y LISTAS EN PYTHON
# ─────────────────────────────────────────────

# TUPLA: colección ordenada que NO se puede modificar (inmutable)
# Se define con paréntesis ( )
numeros = (1, 2, 3, 4)

# LISTA: colección ordenada que SÍ se puede modificar (mutable)
# Se define con corchetes [ ]
numeros_lista = [1, 2, 3, 4]

# También puedes crear una tupla SIN paréntesis, solo con comas
# Python la reconoce igualmente como tupla
masnumeros = 6, 7, 8, 9

print(numeros)       # → (1, 2, 3, 4)
print(masnumeros)    # → (6, 7, 8, 9)

# Recorrer una tupla con un bucle for (igual que con una lista)
for numero in numeros:
    print(numero)    # Imprime cada número en una línea distinta

# Las listas SÍ permiten cambiar sus elementos por índice
# El índice 0 es el primer elemento
numeros_lista[0] = 7  # Cambia el 1 por el 7 → [7, 2, 3, 4]
# numeros[0] = 7  ← Esto daría ERROR porque las tuplas son inmutables


# ─────────────────────────────────────────────
# FUNCIONES QUE DEVUELVEN MÚLTIPLES VALORES
# ─────────────────────────────────────────────

# Una función puede devolver varios valores separados por comas.
# En realidad, Python los empaqueta automáticamente en una tupla.
def estadistica(lista):
    mayor = max(lista)          # Valor más alto de la lista
    menor = min(lista)          # Valor más bajo de la lista
    media = sum(lista) / len(lista)  # Suma total dividida entre cantidad de elementos
    return mayor, menor, media  # Devuelve los tres valores como una tupla


# Llamamos a la función y guardamos el resultado (una tupla) en 'info'
info = estadistica([1, 2, 3, 4, 5])

print(info)           # → (5, 1, 3.0)  — imprime la tupla completa

# Podemos acceder a cada valor por su posición (índice)
print("mayor", info[0])   # → mayor 5
print("menor", info[1])   # → menor 1
print("media", info[2])   # → media 3.0

# DESEMPAQUETADO: asignar cada valor de la tupla a una variable distinta
# en una sola línea. El número de variables debe coincidir con los valores.
a, b, c = estadistica([1, 2, 3, 4, 5])
print(a)   # → 5   (mayor)
print(b)   # → 1   (menor)
print(c)   # → 3.0 (media)


# ─────────────────────────────────────────────
# LISTAS DE TUPLAS
# ─────────────────────────────────────────────

# Una lista puede contener tuplas como elementos.
# Aquí cada tupla representa un punto con coordenadas (x, y).
puntos = [(1, 2), (3, 4), (5, 6)]

# OPCIÓN 1: recibir cada tupla completa y desempaquetarla dentro del bucle
for punto in puntos:
    print(punto)        # Imprime la tupla: (1, 2), (3, 4)...
    x, y = punto        # Desempaquetamos la tupla en dos variables
    print(f"x vale {x} y vale {y}")

# OPCIÓN 2: desempaquetar directamente en la cabecera del for
# Es más compacto y hace exactamente lo mismo que la opción 1
for x, y in puntos:
    print(f"x vale {x} y vale {y}")

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos