El operador walrus en Python
Asignar dentro de una expresión, cuando el valor se necesita dos veces.
lineas = iter(["primera", "segunda", "", "tercera"])
while (linea := next(lineas, None)) is not None:
if not linea:
print("línea en blanco, se detiene")
break
print(linea)
valores = [1, 2, 3, 4, 5, 6]
if (total := sum(valores)) > 20:
print(f"el total {total} es grande")
print([cuadrado for n in valores if (cuadrado := n * n) % 2 == 0])
Cómo funciona
:=asigna y evalúa en un mismo lugar.- Brilla en un while que lee hasta un centinela.
- Usado en cualquier otro lado, suele dañar la legibilidad.
Palabras clave y builtins usados aquí
breakforifiternextprintsumwhile
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 340
- Tokens
- 111
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 67 segundos.
Paso 1 de 3 en Expresiones; paso 65 de 72 en Fundamentos del lenguaje.