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.
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:
- Asignación múltiple: los valores se asignan en orden a las variables correspondientes.
- Desempaquetado: los elementos de una colección se “desempaquetan” en variables individuales.
- 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:
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:
# ❌ 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 unpack0.4.2 2. Mismo valor para múltiples variables
Asigna el mismo valor a varias variables:
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 00.4.3 3. Desempaquetado (unpacking)
Extrae valores de una colección (lista, tupla, etc.) en variables individuales:
# 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) # 200.4.4 4. Intercambio de valores (swapping)
Python permite intercambiar valores de forma elegante:
# 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 50.4.5 5. Desempaquetado con asterisco (*)
Recoge múltiples valores en una lista:
# 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) # 50.5 Ejemplos
Mínimo — Asignación básica:
# 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 100Progresivo — Desempaquetado:
# Desempaquetado de lista
colores = ["rojo", "verde", "azul"]
primero, segundo, tercero = colores
print(primero) # rojo
print(segundo) # verde
print(tercero) # azulReal — Sistema de ventas:
# 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
Usa asignación múltiple para intercambiar valores:
# ✅ Más limpio a, b = b, a # ❌ Menos elegante temp = a a = b b = tempDesempaqueta colecciones para mejorar legibilidad:
# ✅ Legible coordenadas = (10, 20, 30) x, y, z = coordenadas # ❌ Confuso x = coordenadas[0] y = coordenadas[1] z = coordenadas[2]Usa
_para valores que no necesitas:# Ignora el segundo valor x, _, z = 1, 2, 3 print(x, z) # 1 3No 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:
- Cree una lista
datos_usuariocon: nombre, edad, email, ciudad - Desempaquete la lista en variables individuales
- Cree una variable
telefonoy asígnale el valor “555-1234” - Cree tres variables
a,b,ccon el mismo valor 0 - Intercambie los valores de
x = 10yy = 20en una línea - Imprima todos los resultados
Solución (no mires hasta haberlo intentado):
# 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, apara 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/