typestar

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

  1. := asigna y evalúa en un mismo lugar.
  2. Brilla en un while que lee hasta un centinela.
  3. Usado en cualquier otro lado, suele dañar la legibilidad.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Expresiones; paso 65 de 72 en Fundamentos del lenguaje.

← Anterior Siguiente →