Курс Python → Генераторы в Python
Генераторные функции — это мощный инструмент в Python, который позволяет создавать итераторы с минимальным использованием памяти. Вместо того чтобы создавать список или кортеж сразу со всеми значениями, генераторная функция генерирует значения по мере необходимости. Это особенно полезно, когда у вас есть большой объем данных, которые необходимо обработать поэлементно.
Для создания генераторной функции в Python используется ключевое слово yield. Когда интерпретатор Python встречает оператор yield в функции, он приостанавливает выполнение функции и возвращает значение. При следующем вызове функции выполнение продолжается с того же места, где оно было приостановлено, и продолжается до следующего оператора yield.
def my_generator():
for i in range(5):
yield i
gen = my_generator()
for value in gen:
print(value)
В этом примере функция my_generator является генераторной функцией, которая возвращает числа от 0 до 4. При вызове функции my_generator() создается объект-генератор, который можно использовать в цикле for для обхода всех значений, сгенерированных функцией.
Использование генераторных функций особенно полезно в случаях, когда необходимо применить серию фильтров или обработчиков к элементам списка. Вместо того чтобы создавать промежуточные списки с отфильтрованными значениями, можно использовать генераторы для ленивой обработки данных, что позволяет сэкономить память и улучшить производительность.
Другие уроки курса "Python"
- SciPy: широкий функционал для математических операций
- Numpy: использование Ellipsis
- Проверка файла .py на синтаксис.
- Pretty-printing JSON в Python
- Сериализация данных в JSON с помощью json.dumps
- Преобразование текста в нижний регистр
- Работа с датой и временем в Python
- Обработка исключений в Python
- Избегание циклических зависимостей классов в Python
- Сравнение объектов в Python
- Установка пакетов с помощью pip
- Управление контекстом с помощью декоратора contextmanager
- Ускорение обработки данных с %autoawait
- Работа с комплексными числами
- Введение в Python
- Работа с датой и временем в Python
- Оператор continue в Python
- Запрос пароля с помощью getpass
- Инициализация переменных
- Вакансии в Nebius
- Импорт классов из другого файла
- Явный импорт переменных
- Функция enumerate() в Python
- Оптимизация памяти с __slots__
- Именование переменных в Python
- Возврат значений из генератора
- Функции в одну строку
- Создание пользовательской коллекции в Python
- Работа с getopt
- Форматирование вывода списков
- Расчет времени выполнения
- Списковое включение в Python
- Декораторы в Python
- Создание пар из последовательностей
- Метод setdefault() в Python
- Модуль Antigravity в Python 3
- Форматирование вывода с F-строками
- Создание вложенных циклов for
- Нарезка списков в Python
- Работа с defaultdictами в Python
- Идентификатор объекта в Python
- Округление в Python
- Python Аргументы по умолчанию
- Принципы Zen of Python
- Метод __ixor__ для побитового исключающего ИЛИ
- Группировка элементов в словарь















