El Operador Morsa := en Python

Manav Narula 14 abril 2022
El Operador Morsa := en Python

Los usuarios de Python reciben actualizaciones periódicas a medida que se realizan nuevos cambios y se agregan funciones en cada actualización. Con Python 3.8, se introdujo el operador morsa :=. Es un operador de asignación.

Discutiremos el operador morsa en este tutorial.

Operador Walrus en Python

A diferencia del operador de asignación tradicional =, que asigna los valores, el operador morsa := puede asignar el valor y simultáneamente devolver la variable. Este operador es una característica útil para asignar valores dentro de una expresión.

Usamos paréntesis para asignar un valor a una variable mientras usamos este operador.

Por ejemplo:

(a := 5)
print(a)

Producción :

5

El operador morsa es útil ya que nos permite evitar declaraciones repetidas en muchos casos. Podemos asignar los valores a una variable, que puede no existir todavía, en el contexto de una expresión.

a = [1, 2, 3]
if (n := len(a)) > 5:
    pass
print(n)

Producción :

3

El código anterior dará un error si usamos el operador de asignación tradicional. Sin embargo, dado que usamos el operador morsa, podríamos definir el valor de n en la expresión y usarlo después.

Ahora tomemos otro ejemplo.

a = [1, 2, 3]
d = {1: len(a), 2: sum(a), 3: sum(a) / len(a)}
print(d)

Producción :

{1: 3, 2: 6, 3: 2.0}

En el ejemplo anterior, calculamos la longitud y la suma de la lista dos veces. Podemos evitar esto usando el operador morsa.

Usando este operador, podemos asignar la variable para longitud y suma dentro de la expresión.

Por ejemplo:

a = [1, 2, 3]
d = {1: (n := len(a)), 2: (s := sum(a)), 3: (n / s)}
print(d, n, s)

Producción :

{1: 3, 2: 6, 3: 0.5} 3 6

Aquí, usamos el operador morsa para asignar las variables n y s dentro de la expresión. Luego, usamos estas variables dentro de la expresión y las mostramos después.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python Operator