¿Alguien podría explicar el comportamiento de un bucle anidado utilizando generadores? Aquí hay un ejemplo.El bucle anidado de Python con generadores no funciona (en algunos casos)?
a = (x for x in range(3))
b = (x for x in range(2))
for i in a:
for j in b:
print (i,j)
El bucle externo no se evalúa después de la primera iteración por algún motivo. El resultado es,
(0, 0)
(0, 1)
Por otro lado, si los generadores se insertan directamente en los bucles, que hace lo que espero.
for i in (x for x in range(3)):
for j in (x for x in range(2)):
print (i,j)
dando todos 3x2 pares.
(0, 0)
(0, 1)
(1, 0)
(1, 1)
(2, 0)
(2, 1)
Aha! No noté el agotamiento del generador. Muchas gracias. – phantomile