Рубрики
Без рубрики

Осторожно при использовании генераторов Python!

Да, они эффективны памятью! Генераторы Python могут оказаться чрезвычайно полезными.

  • Генераторы 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”