Asignaciones múltiples en Python
👋 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.
Espero que este post te ayude y como siempre, te recomiendo seguirme en Twitter para estar al tanto de los nuevo contenido. Ahora también puedes seguirme en Instagram donde estoy subiendo tips, tutoriales en vídeo e información sobre herramientas para developers.
Por último os dejo mi guía para aprender a trabajar con APIs donde explico todo el funcionamiento de una API, el protocolo HTTP y veremos como construir una API con arquitectura REST.
Nos leemos 👋.