Qualcuno potrebbe spiegare il comportamento di un ciclo annidato usando i generatori? Ecco un esempio.Il loop annidato di Python con generatori non funziona (in alcuni casi)?
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)
Il ciclo esterno non viene valutata dopo la prima iterazione per qualche ragione. Il risultato è,
(0, 0)
(0, 1)
D'altra parte, se i generatori vengono inseriti direttamente nelle anse, che fa quello che mi aspetto.
for i in (x for x in range(3)):
for j in (x for x in range(2)):
print (i,j)
dare tutte le coppie 3x2.
(0, 0)
(0, 1)
(1, 0)
(1, 1)
(2, 0)
(2, 1)
Aha! Non ho notato l'esaurimento del generatore. Grazie mille. – phantomile