Кто-нибудь, пожалуйста, объясните поведение вложенного цикла с использованием генераторов? Вот пример.
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)
Внешний цикл по какой-то причине не оценивается после первой итерации. В результате
(0, 0)
(0, 1)
С другой стороны, если генераторы непосредственно вставляются в циклы, это делает то, что я ожидаю.
for i in (x for x in range(3)):
for j in (x for x in range(2)):
print (i,j)
давая все 3x2 пары.
(0, 0)
(0, 1)
(1, 0)
(1, 1)
(2, 0)
(2, 1)