- Генераторы Python могут оказаться чрезвычайно полезными в тех случаях, когда у вас есть большие объемы данных и вы пытаетесь подавать их итератору. Короче говоря, генераторы возвращают ленивый итератор, который не хранит их содержимое в памяти. ВОТ ЭТО ДА! Отлично, звучит так, как будто вы спасаете себя проблемой, чтобы столкнуться с
MemoryError
, Правильно?
nums = (x for x in range(10000000000000)) for num in nums: print(num, end=" ") >>> 1,2,3,4.... for num in nums: print(num*2, end=" ") # What do you think is the output of the above for loop?
- Когда итерация над генератором элементы в каждом месте по сути «потребляются» и «отброшены».
- Другими словами, если вы попытаетесь снова итерации над генератором, это будет выглядеть как все ваши элементы исчезли!
- Вы не увидите номеров, напечатанных в консоли.
Оставьте свои комментарии ниже!
Оригинал: “https://dev.to/tortellini/careful-when-using-python-generators-2a0p”