Курс Python → Генераторы в Python
Генераторы в Python — это функции, которые используют ключевое слово `yield` вместо `return`. Когда функция с `yield` вызывается, она возвращает объект-генератор, который можно итерировать по одному значению за раз. При каждой итерации генератор запоминает свое состояние, чтобы продолжить выполнение с того же места. Это позволяет экономить память и увеличивает производительность при работе с большими объемами данных.
Пример создания простого генератора:
def my_generator():
for i in range(5):
yield i
gen = my_generator()
for val in gen:
print(val)
В этом примере функция `my_generator` возвращает генератор, который поочередно выдает числа от 0 до 4. При каждой итерации цикла `for` будет выводиться следующее значение, не храня все значения в памяти одновременно.
Генераторы также могут быть бесконечными, если они используют цикл `while` или рекурсию. Они позволяют эффективно обрабатывать потенциально бесконечные последовательности данных, такие как потоки сетевых пакетов или событий.
Помимо создания собственных генераторов, в Python есть встроенные функции, которые возвращают генераторы. Например, функция `range()` возвращает ленивую последовательность чисел, что позволяет эффективно работать с большими диапазонами значений без необходимости хранить их все в памяти.
Использование генераторов в Python помогает сделать код более читаемым, компактным и эффективным. Они позволяют работать с данными по требованию, что особенно важно при обработке больших объемов информации или при работе с потенциально бесконечными последовательностями.
Другие уроки курса "Python"
- Расчет времени выполнения
- Профилирование кода
- Генераторные функции в Python
- Атрибуты класса и экземпляра
- Возврат нескольких значений
- Построение графиков в Matplotlib
- Кортежи в Python: особенности и преимущества
- Работа со слайсами
- Синтаксис переменных цикла в Python
- Условное добавление элементов в список
- Python 3.12: переиспользование кавычек
- Переименование файлов в Python
- Новшества Flask 2.0
- Работа с временем в Python
- Оператор деления для класса Rational
- Протокол управления контекстом
- Функция enumerate() в Python
- Хэш-функции и метод цепочек
- Множественное назначение в Python
- Преобразование текста в речь с Python
- Комментарии в Python
- Python Метод sleep() из time
- Оператор умножения для вектора
- Документация функции help() в Python
- Подчеркивание в REPL
- Получение пути к текущему скрипту с помощью os
- Рекурсия для обращения строки
- Непрерывная проверка в Python
- Методы работы со списками
- Pillow: работа с изображениями
- Многострочные комментарии в Python
- Модуль sys: основы
- Декораторы с аргументами
- Добавление элемента в список.
- Запуск Python из интерпретатора
- Concrete Paths в Python
- Сериализация объектов в Python
- Форматирование объектов с модулем pprint
- Асинхронное выполнение задач в Python
- Бинарный поиск
- Дизассемблирование Python кода
- Расчет времени выполнения кода
- Глубокое копирование объектов
- Встроенные функции Python
- Magic Commands — улучшение работы с Python















