¿Qué imprime esto?
g = (x for x in range(3))
print(list(g), list(g))Opciones
- [0, 1, 2] [0, 1, 2]
- [0, 1, 2] [] (Opción correcta)
- [] []
- TypeError
Respuesta
[0, 1, 2] []
Por qué
Un generator produce valores de uno en uno y no los conserva. Cuando ya los leíste todos queda 'agotado' y no puede volver a empezar.
El primer list(g) lee 0, 1, 2. El segundo no encuentra nada y devuelve [].
Si necesitas los datos dos veces, guárdalos antes en una lista.
Recuerda
Los generators son de un solo uso.