Курс 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"
- Оператор == в Python
- Добавление цвета в консоли
- Повторение элементов списков
- Управление User-Agent в Python
- Оптимизация памяти с slots
- Удаление элемента по индексу в Python
- Реализация операции -= для пользовательского класса
- Метод ifloordiv для пользовательских классов
- Декораторы в Python
- Тестирование с responses
- Генераторы данных
- Метод __iand__ для пользовательских классов
- Проверка списка: any() и all()
- Объединение итераторов
- Модуль os в Python: работа с файлами
- Виртуальное окружение Python
- Метод rxor для операции побитового исключающего «или»
- Логирование с Logzero: ротация файла
- Метод __imod__ для Python
- Переопределение метода delitem в Python
- Операции со строками в Python
- Работа с CSV файлами
- Отладка кода
- Основы работы с os
- Таймер обратного отсчета
- Оператор «not» в Python
- Удаление дубликатов с помощью множеств
- Декораторы в Python
- Автоматизация с Python
- Возврат нескольких значений
- Распаковка с оператором *
- Управление контекстом с помощью декоратора contextmanager
- Классы данных в Python
- Определение относительного пути
- Лямбда-функции в Python
- Операции с матрицами в Python
- Обработка исключения UnboundLocalError
- SciPy: широкий функционал для математических операций
- Сглаживание списка
- Функция map() в Python
- Python: динамическая типизация и проверка типов
- Метод join() для объединения элементов строки
- Сравнение def и lambda функций в Python
- Объединение списков с использованием itertools.chain
- Оператор @ для умножения матриц
- Скачать видео с YouTube
- Моржовый оператор в Python 3.8















