Saltar al contenido
Numerus Scriptum por Edison Achalma

Asignación múltiple de variables

Python permite asignar valores a múltiples variables en una sola línea, haciendo el código más compacto y legible.

7 min de lectura PDF de esta lección(54 KB) DOCX (29 KB)

0.1 Motivación

Python permite asignar valores a múltiples variables en una sola línea, haciendo el código más compacto y legible. Esta característica es especialmente útil cuando trabajas con colecciones de datos, intercambias valores o inicializas varias variables con el mismo valor. Dominar estas técnicas hace tu código más Pythonico y eficiente.

0.2 Intuición

Imagina que tienes tres cajas (variables) y tres objetos (valores). Normalmente, pondrías un objeto en cada caja por separado. La asignación múltiple es como hacerlo todo de una vez: colocas el primer objeto en la primera caja, el segundo en la segunda, y el tercero en la tercera, simultáneamente. Es más rápido y más limpio.

0.3 Modelo mental

Python evalúa el lado derecho primero y luego asigna a la izquierda:

  1. Asignación múltiple: los valores se asignan en orden a las variables correspondientes.
  2. Desempaquetado: los elementos de una colección se “desempaquetan” en variables individuales.
  3. Intercambio: Python permite intercambiar valores de manera elegante sin variable temporal.

0.4 Desarrollo

0.4.1 1. Asignación múltiple en una línea

Asigna diferentes valores a diferentes variables:

python
x, y, z = "Manzana", "Banana", "Cereza"
print(x)  # Manzana
print(y)  # Banana
print(z)  # Cereza

# También funciona con números
a, b, c = 1, 2, 3
print(a, b, c)  # 1 2 3

# Y con tipos mixtos
nombre, edad, ciudad = "Ana", 25, "Madrid"

Importante: el número de variables debe coincidir con el número de valores:

python
# ❌ Error: demasiados valores
x, y = 1, 2, 3  # ValueError: too many values to unpack

# ❌ Error: pocos valores
x, y, z = 1, 2  # ValueError: not enough values to unpack

0.4.2 2. Mismo valor para múltiples variables

Asigna el mismo valor a varias variables:

python
x = y = z = "Naranja"
print(x)  # Naranja
print(y)  # Naranja
print(z)  # Naranja

# Con números
a = b = c = 0
print(a, b, c)  # 0 0 0

0.4.3 3. Desempaquetado (unpacking)

Extrae valores de una colección (lista, tupla, etc.) en variables individuales:

python
# Desempaquetando una lista
frutas = ["manzana", "banana", "cereza"]
x, y, z = frutas
print(x)  # manzana
print(y)  # banana
print(z)  # cereza

# Desempaquetando una tupla
coordenadas = (10, 20)
x, y = coordenadas
print(x)  # 10
print(y)  # 20

0.4.4 4. Intercambio de valores (swapping)

Python permite intercambiar valores de forma elegante:

python
# Método tradicional (en otros lenguajes)
a = 5
b = 10
temp = a
a = b
b = temp
print(a, b)  # 10 5

# Método Pythonico
a, b = 5, 10
a, b = b, a  # Intercambio en una línea
print(a, b)  # 10 5

0.4.5 5. Desempaquetado con asterisco (*)

Recoge múltiples valores en una lista:

python
# Recoge el resto de elementos
a, b, *resto = 1, 2, 3, 4, 5
print(a)      # 1
print(b)      # 2
print(resto)  # [3, 4, 5]

# También funciona en medio
a, *medio, b = 1, 2, 3, 4, 5
print(a)      # 1
print(medio)  # [2, 3, 4]
print(b)      # 5

0.5 Ejemplos

Mínimo — Asignación básica:

python
# Múltiples valores
nombre, edad, ciudad = "Ana", 25, "Madrid"
print(nombre, edad, ciudad)  # Ana 25 Madrid

# Mismo valor
x = y = z = 100
print(x, y, z)  # 100 100 100

Progresivo — Desempaquetado:

python
# Desempaquetado de lista
colores = ["rojo", "verde", "azul"]
primero, segundo, tercero = colores
print(primero)   # rojo
print(segundo)   # verde
print(tercero)   # azul

Real — Sistema de ventas:

python
# Datos de un producto
producto = ["Laptop", 850.50, 15]  # nombre, precio, stock
nombre, precio, stock = producto

# Cálculo de venta
cantidad = 3
total = precio * cantidad
nuevo_stock = stock - cantidad

print("Producto:", nombre)
print("Precio unitario: $", precio)
print("Total venta: $", total)
print("Stock restante:", nuevo_stock)

0.6 Errores comunes

Error Síntoma Cómo evitarlo
Número de variables ≠ valores ValueError: too many/few values to unpack Cuenta variables y valores
Desempaquetar no iterable TypeError: cannot unpack non-iterable int object Solo puedes desempaquetar colecciones
Usar * sin necesidad Funciona, pero puede ser confuso Usa * solo cuando el número de elementos es variable
Olvidar el orden Asignación incorrecta Los valores se asignan en orden

0.7 Buenas prácticas

  1. Usa asignación múltiple para intercambiar valores:

    python
    # ✅ Más limpio
    a, b = b, a
    
    # ❌ Menos elegante
    temp = a
    a = b
    b = temp
  2. Desempaqueta colecciones para mejorar legibilidad:

    python
    # ✅ Legible
    coordenadas = (10, 20, 30)
    x, y, z = coordenadas
    
    # ❌ Confuso
    x = coordenadas[0]
    y = coordenadas[1]
    z = coordenadas[2]
  3. Usa _ para valores que no necesitas:

    python
    # Ignora el segundo valor
    x, _, z = 1, 2, 3
    print(x, z)  # 1 3
  4. No abuses de la asignación múltiple: si tienes muchas variables (>3), considera usar una estructura de datos.

0.8 Ejercicio

Básico — Asignación y desempaquetado

Escribe un programa que:

  1. Cree una lista datos_usuario con: nombre, edad, email, ciudad
  2. Desempaquete la lista en variables individuales
  3. Cree una variable telefono y asígnale el valor “555-1234”
  4. Cree tres variables a, b, c con el mismo valor 0
  5. Intercambie los valores de x = 10 y y = 20 en una línea
  6. Imprima todos los resultados

Solución (no mires hasta haberlo intentado):

python
# 1. Lista de datos
datos_usuario = ["Ana Martínez", 28, "ana@email.com", "Barcelona"]

# 2. Desempaquetado
nombre, edad, email, ciudad = datos_usuario

# 3. Variable individual
telefono = "555-1234"

# 4. Mismo valor para múltiples variables
a = b = c = 0

# 5. Intercambio de valores
x, y = 10, 20
x, y = y, x

# 6. Resultados
print("Nombre:", nombre)
print("Edad:", edad)
print("Email:", email)
print("Ciudad:", ciudad)
print("Teléfono:", telefono)
print("a, b, c:", a, b, c)
print("x, y después del intercambio:", x, y)

0.9 Síntesis

  • Asignación múltiple: x, y, z = 1, 2, 3 (coincidir número de variables y valores).
  • Mismo valor: x = y = z = 0 (todas apuntan al mismo valor).
  • Desempaquetado: extrae elementos de listas/tuplas en variables.
  • Intercambio: a, b = b, a para intercambiar valores (muy Pythonico).
  • Asterisco (*): recolecta múltiples valores en una lista.
  • Guión bajo (_): ignora valores no deseados.

0.10 Qué sigue

  • Relacionado: listas y tuplas (estructuras de datos), desempaquetado avanzado
  • Siguiente tema: Tipos de datos — aprenderás a manejar diferentes tipos de datos como strings, números y booleanos.

Cómo citar

Achalma, E. (2026, 20 de octubre). Asignación múltiple de variables. Numerus Scriptum. https://numerus-scriptum.netlify.app/cursos/python/asignacion-multiple-de-variables/

Esc
elegir abrir Esc cerrar