logo cosasdedevs
Asignaciones múltiples en Python

Asignaciones múltiples en Python



My Profile
Sep 22, 2021

👋 Muy buenas, en el tutorial de esta semana toca seguir viendo aspectos básicos de Python y hoy vamos a aprender que son las asignaciones múltiples en Python y como utilizarlas.

¿Qué son las asignaciones múltiples en Python?

Las asignaciones múltiples son un sistema en el que podremos asignar 2 o más valores en 2 o más variables en una sola línea de código, de forma que podremos tener un código más limpio y compacto.

Casos de uso de asignaciones múltiples

Usar asignaciones múltiples con listas

Por ejemplo, podemos tener una lista de 3 valores que queramos asignar en tres variables distintas. Para asignarlas, tendremos que escribir en la misma línea los nombres de las tres variables separadas por comas, después el signo de igualdad y por último la lista:

number_list = [4, 1, 9]

a, b, c = number_list

Los valores se asignarán en orden. En este caso, 'a' tendrá un valor de 4, 'b' de 1 y 'c' de 9. En el caso de que tengamos menos variables a las que asignar todos los valores de la lista, estos valores quedarán sin asignar, en el caso contrario, es decir, declarar más variables que valores tiene la lista, se lanzará una excepción:

number_list = [4, 1, 9]

a, b, c, d = number_list
Traceback (most recent call last):
  File "asignaciones-multiples.py", line 4, in <module>
    a, b, c, d = number_list
ValueError: not enough values to unpack (expected 4, got 3)

Usar asignaciones múltiples en Sets

También podemos usar las asignaciones múltiples en sets de igual forma que con las listas:

fruit_list = {'apple', 'orange', 'lemon'}

apple, orange, lemon = fruit_list

Usar asignaciones múltiples en Tuplas

Al igual que en listas y sets, también podemos usarlas con tuplas:

books = ('El imperio final', 'El pozo de la ascensión', 'El heroe de las eras')

book1, book2, book3 = books

Usar asignaciones múltiples en Diccionarios

Si tenemos un diccionario y queremos asignar sus claves en variables, podremos hacerlo como en los ejemplos anteriores:

user = {
    'name': 'Alberto',
    'age': 33
}

name, age = user

print(name) # Resultado: name
print(age) # Resultado: age

En el caso de que lo que queramos obtener sean los valores y no las claves, podemos usar la función values() de nuestro diccionario para obtener una lista con los valores y después asignarla a las variables:

user = {
    'name': 'Alberto',
    'age': 33
}

name, age = user.values()

print(name) # Resultado: Alberto
print(age) # Resultado: 33

Asignaciones con funciones y métodos

Python nos permite retornar más de un valor en nuestras funciones y métodos. En este caso también podremos utilizar las asignaciones múltiples para recuperar los valores:

def get_profile():
    username = 'Alber'
    email = 'alber@cosasdedevs.com'
    photo = '../files/photo.png'

    return username, email, photo

username, email, photo = get_profile()

Asignaciones con el operador *

Puede aparecer el caso en el que tengamos una lista en la que queramos asignar algunos valores en variables y el resto sobrante guardarlo en una sola lista. Para asignar ese resto podemos utilizar el operador * de la siguiente forma:

Caso 1

number_list2 = [4, 3, 0, 1, 5]

x, *y, z = number_list2

Resultado:

4
[3, 0, 1]
5

En este caso, el primer valor se asigna a la variable 'x' y el último en la variable 'z'. Los valores restantes se guardarán en la variable 'y' en forma de lista.

Caso 2

number_list2 = [4, 3, 0, 1, 5]

*x, y, z = number_list2

Resultado:

[4, 3, 0]
1
5

En este ejemplo, 'y' y 'z' guardan los dos últimos valores de la lista respectivamente y en 'x' se guarda el resto.

Caso 3

number_list2 = [4, 3, 0, 1, 5]

x, y, *z = number_list2

Resultado:

4
3
[0, 1, 5]

En este caso, 'x' e 'y' guardan los dos primeros valores respectivamente y el resto se almacenará en la variable z.

Y bueno, eso es todo por este tutorial. Espero que os haya gustado y como siempre, os recomiendo seguirme en Twitter para estar al tanto de los nuevos tutoriales y suscribiros a mi canal de YouTube en el que vamos a extender todos los aprendizajes de este blog.

Nos leemos 👋.

215 vistas

🐍 Sígueme en Twitter

Si te gusta el contenido que subo y no quieres perderte nada, sígueme en Twitter y te avisaré cada vez que cree contenido nuevo 💪
Luego ¡Te sigo!

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para mejorar la experiencia del usuario a través de su navegación. Si pulsas entendido aceptas su uso. Ver política de cookies.