Курс 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.
- Имена объектов в Python
- Оператор «is not» в Python
- Именованные срезы в Python
- Метод splitlines() для разделения строк
- Избегание циклических зависимостей классов в Python
- Функции all и any в Python
- Создание и операции с дробями
- Счетчик ссылок в Python
- Переменные в Python
- Основные методы NumPy
- Печать месячного календаря
- Модуль itertools: эффективная работа с итераторами
- Проверка списка: any() и all()
- Проверка строки на палиндром
- Работа с NumPy массивами
- Оператор морж в Python 3.8
- Создание коллекций из генератора
- Настройка нарезки списков
- Замыкания в Python
- Объединение, распаковка и деструктуризация
- Получение частей дроби
- Метод getitem для доступа к элементам последовательности
- Протокол управления контекстом
- Логирование в Python
- Разбиение текста в Python
- Python UserString — создание подклассов строк
- Отправка HTTP-запросов в Python
- Распаковка значений в Python
- Многопоточность и асинхронное программирование в Python
- Модуль subprocess: запуск внешних команд
- Сравнение объектов в Python
- Защита данных в Python
- Создание списка через цикл
- Сравнение def и lambda функций в Python
- Метод split() в Python
- Библиотека funcy: удобные утилиты
- Генерация QR-кодов с библиотекой qrcode
- Оператор += в Python
- Уникальность ключей в словаре
- Импортирование в Python
- Инициализация структур данных
- Непрерывная проверка в Python
- Enum в Python















