typestar

Expresiones generadoras en Python

Comprensiones perezosas que calculan un elemento a la vez.

lecturas = [21.5, 19.8, 23.1, 22.4, 18.9]

total = sum(r for r in lecturas if r > 20)
maxima = max(r for r in lecturas)
alguna_fria = any(r < 19 for r in lecturas)
todas_templadas = all(15 < r < 25 for r in lecturas)

cuadrados = (n * n for n in range(1_000_000))
primero = next(cuadrados)
segundo = next(cuadrados)

conteo = sum(1 for r in lecturas if r > 20)

Cómo funciona

  1. sum(r for r in lecturas if r > 20) nunca construye una lista.
  2. any y all cortocircuitan sobre el stream.
  3. next saca valores individuales de una expresión sin fin.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
360
Tokens
103
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 62 segundos.

Escribe este fragmento

Paso 4 de 4 en Comprensiones; paso 4 de 53 en Python pythónico.

← Anterior Siguiente →