Repaso
English
PythonIntermedioPY-05

¿Qué imprime esto?

g = (x for x in range(3))
print(list(g), list(g))

Opciones

  1. [0, 1, 2] [0, 1, 2]
  2. [0, 1, 2] [] (Opción correcta)
  3. [] []
  4. 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.

Términos clave

Practica esta pregunta en Repaso