Що таке Generators (Генератори) в Python?
У Python генератори є потужним і ефективним інструментом для створення об'єктів, що ітеруються. Вони дозволяють генерувати значення "на льоту" замість зберігання їх у пам'яті, що робить генератори особливо корисними при роботі з великими обсягами даних.
Основні характеристики генераторів:
- Лінива генерація: Генератори створюють значення тільки в момент запиту, що дозволяє заощаджувати ресурси пам'яті.
- Використання ключового слова
yield: Генератори використовують операторyieldдля повернення значення та тимчасового призупинення виконання функції. - Ітерованість: Генератори можуть бути використані в циклах
forі функціях, що очікують об'єкти, що ітеруються.
Приклад використання:
def square_numbers(n):
for i in range(n):
yield i ** 2
# Створення генератора
my_generator = square_numbers(5)
# Ітерування по генератору
for number in my_generator:
print(number)
# Результат: 0 1 4 9 16
У цьому прикладі створюється генератор square_numbers, який повертає квадрати чисел від 0 до n-1. При використанні генератора в циклі for, значення генеруються при необхідності, що заощаджує пам'ять і забезпечує ліниву генерацію.
Генератори часто застосовуються в ситуаціях, де необхідно обробляти великі обсяги даних поетапно, без завантаження їх повністю на згадку. Вони також покращують продуктивність та забезпечують ефективне використання ресурсів.