Operador Walrus
El operador Walrus, :=
, es una nueva característica introducida en Python 3.8 y te permite asignar valores a variables dentro de una expresión. El operador funciona utilizando la misma sintaxis que el operador de asignación, =
, pero aparece en el lado izquierdo de una expresión.
A continuación, se presentan algunos ejemplos de código para mostrarte cómo usar el operador Walrus.
Ejemplo 1
## Encontrando el primer número par en una lista utilizando el operador Walrus
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
if (even := num % 2 == 0):
print(f"El primer número par es: {even}")
break
## Salida:
## El primer número par es: True
Este ejemplo demuestra cómo usar el operador Walrus para encontrar el primer número par en una lista. La lista numbers
contiene enteros del 1 al 10. En el bucle for
, iteramos a través de la lista numbers
y usamos el operador Walrus :=
para asignar el resultado de la expresión num % 2 == 0
a la variable even
. Si even
es True
, significa que num
es un número par. En este caso, la declaración if
se cumple y el primer número par se imprime junto con un mensaje. La declaración break
se utiliza para detener el bucle cuando se encuentra el primer número par.
Ejemplo 2
## Usando el operador Walrus en un bucle while
counter = 0
while (counter := counter + 1) <= 10:
print(counter)
## Salida:
## 1
## 2
## ……
## 10
En este ejemplo, usamos el operador Walrus en un bucle while
. La variable counter
se inicializa en 0 y el bucle while
continúa ejecutándose mientras counter
sea menor o igual a 10. En cada iteración del bucle, el operador Walrus se utiliza para actualizar el valor de counter
incrementándolo en 1. El valor actualizado de counter
se utiliza en la siguiente iteración del bucle. El bucle imprime el valor de counter
en cada iteración, lo que resulta en la impresión de los números del 1 al 10.
Ejemplo 3
## Usando el operador Walrus en una comprensión de lista
squared_numbers = [num * num for num in range(10) if (even := num % 2 == 0)]
print(squared_numbers)
## Salida:
## [0, 4, 16, 36, 64]
En este ejemplo, usamos el operador Walrus en una comprensión de lista. La comprensión de lista se utiliza para crear una lista de los cuadrados de los números pares del 0 al 9. La comprensión de lista consta de dos partes: una expresión num * num
y una cláusula condicional if (even := num % 2 == 0)
. La expresión num * num
calcula el cuadrado del número actual en el bucle num
. La cláusula condicional utiliza el operador Walrus para asignar el resultado de la expresión num % 2 == 0
a la variable even
. Si even
es True
, significa que num
es un número par, y su cuadrado se incluye en la lista squared_numbers
. La comprensión de lista genera la lista [0, 4, 16, 36, 64]
.
Es importante tener en cuenta que el operador Walrus está destinado a usarse en casos específicos donde necesites asignar un valor dentro de una expresión y usar ese mismo valor múltiples veces. No está destinado a reemplazar las declaraciones de asignación tradicionales, y se recomienda usarlo con moderación para mejorar la legibilidad del código.