Generator expression

Por último, también es posible crear generadores usando la misma estructura. Por ejemplo, podríamos crear un generador que devolviese los cuadrados de los primeros 10 números enteros (a partir del 0) con la siguiente expresión:

s = (n ** 2 for n in range(11))

Vemos que el único cambio es el uso de los paréntesis en lugar de los corchetes o las llaves. El resultado devuelto es un generador:

type(s)

generator

Podemos extraer los valores, por ejemplo, con un bucle:

for n in s:
    print(n)

0
1
4
9
16
25
36
49
64
81
100

O podríamos sumar dichos valores pasando el generador como argumento a la función sum, por poner un segundo ejemplo:

s = (n ** 2 for n in range(11))
sum(s)

385