Курс Python → Генераторы в Python
Генераторы (generators) в Python — это специальный тип функций, которые позволяют создавать итерируемые объекты без необходимости хранить все значения в памяти. Вместо этого значения вычисляются по мере необходимости. Генераторы особенно полезны при работе с большими объемами данных или при работе с бесконечными последовательностями.
Для создания генератора в Python используется ключевое слово yield вместо return. Когда функция с генератором вызывается, она не выполняется полностью, а возвращает объект-генератор, который можно использовать для итерации. Каждый раз, когда вызывается метод next() или используется цикл for, функция продолжает выполнение с того момента, где был вызван yield, и возвращает значение.
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
for i, num in enumerate(fib):
if i == 10:
break
print(num)
В приведенном выше примере определен генератор fibonacci, который возвращает бесконечную последовательность чисел Фибоначчи. При каждом вызове метода next() или итерации циклом for, генератор возвращает следующее число Фибоначчи. Используя цикл for и функцию enumerate, мы можем перебрать первые 10 чисел Фибоначчи из генератора.
Использование генераторов в Python помогает экономить память и увеличивает производительность программы, особенно при работе с большими объемами данных. Генераторы также удобны при работе с потоками данных или при необходимости создания бесконечных последовательностей, таких как генерация случайных чисел или обход файлов.
Другие уроки курса "Python"
- Работа с GitHub в Telegram
- Получение размера объекта с sys.getsizeof()
- Структурирование именованных констант
- Рациональные числа в Python
- Карта бомбоубежищ в Москве и Питере
- Сортировка с параметром key
- Оптимизация создания строк
- Очистка данных в Python
- Уникальность ключей в словаре
- Необязательные аргументы в Python
- Прокачанный трейсинг ошибок
- Управление контекстом выполнения
- Методы Python для работы с данными
- Визуализация пропусков данных
- Основы Python
- Модуль inspect
- Векторизация в Python с NumPy.
- Работа с изменяемыми коллекциями
- Замеры производительности в Python
- Генераторы в Python
- Обход словаря в Python
- Создание функций высшего порядка
- Асинхронный код в Python
- Встраивание HTML в Jupyter Notebook
- Удаление первого элемента списка
- Импорт модулей в Python 3.12
- Проверка списка: any() и all()
- Обновление и получение данных в SQLite
- split() — разделение строки
- Создание коллекций из генератора
- Оператор «is not» в Python
- Работа с датами в Python
- Преобразование данных в Python
- Объединение кортежей в Python
- Локальные переменные.
- Извлечение данных из JSON
- Функции в Python: создание и вызов
- Логирование с Logzero
- Замена текста в Python
- Метод add для класса Vector
- Вывод символов строки в Python
- Использование подчеркивания в REPL
- Оператор space-invader
- Протокол управления контекстом
- Список и кортеж в Python
- Определение объема памяти объекта
- Обход дочерних элементов BeautifulSoup















