Сброс объекта-генератора в Python: изучение альтернатив
Генераторы предоставляют эффективный способ перебора последовательности значений без создания списка в память. Однако как только генератор выдал все свои значения, он исчерпывается и не может быть повторно использован напрямую. Возникает вопрос о том, как сбросить объект-генератор в Python.
К сожалению, генераторы не имеют встроенного метода сброса. Чтобы повторно использовать генератор, у вас есть несколько вариантов:
Рассмотрите следующий фрагмент кода для каждого параметра:
Option 1 (снова запустите функцию генератора):
y = FunctionWithYield()
for x in y:
print(x)
y = FunctionWithYield()
for x in y:
print(x)
Вариант 2 (сохранение результатов генератора в списке):
y = list(FunctionWithYield())
for x in y:
print(x)
# Can iterate again:
for x in y:
print(x)
Выбор между этими опциями зависит от конкретных требований вашей программы. Вариант 1 более эффективен для небольших генераторов или когда повторный запуск функции генератора не требует больших вычислительных затрат. Вариант 2 больше подходит для больших генераторов, где возможно сохранение результатов в памяти.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3