В чем отличие итератора от генераторного выражения?
Пример:
a = iter([i ** 2 for i in range(10000)])
b = (i ** 2 for i in range(10000))
В чем существенная разница?
В переменной a
находится итератор списка, пройдя поэлементно мы получим определенные значения, а в переменной b
находится генераторное-выражение, пройдясь поэлементно по которому мы получим те же самые значения. Так в чем же отличие?
Источник: Stack Overflow на русском