Курс Python → Генераторы в Python
Генераторные функции (generator functions) — это мощный инструмент в Python, который позволяет создавать итераторы с помощью ключевого слова yield. Когда у вас есть необходимость обработать большой объем данных или выполнить сложные операции с элементами списка, генераторные функции становятся незаменимыми. Они позволяют удобно организовать фильтрацию и обработку элементов списка, не загружая память излишне.
Важным преимуществом использования генераторных функций является их эффективность. Поскольку генераторы работают по требованию (lazy evaluation), они не требуют хранения всех элементов списка в памяти одновременно. Вместо этого элементы обрабатываются по мере необходимости, что позволяет сэкономить ресурсы и улучшить производительность программы.
Для создания генераторной функции в Python необходимо использовать ключевое слово yield. Это ключевое слово позволяет вернуть значение из функции, приостановить ее выполнение и сохранить текущее состояние. При каждом вызове генераторной функции она продолжает выполнение с того места, где была приостановлена, что делает ее итератором.
def my_generator():
for i in range(5):
yield i
gen = my_generator()
for item in gen:
print(item)
В приведенном примере мы создаем генераторную функцию my_generator(), которая возвращает числа от 0 до 4 при каждом вызове. Затем мы создаем объект-генератор и итерируемся по нему, выводя каждый элемент на экран. Таким образом, мы можем эффективно обрабатывать большие объемы данных, не загружая память и повышая производительность программы.
Другие уроки курса "Python"
- Деление в Python
- Оператор walrus в Python
- Метод join() для объединения элементов строки
- Оператор Walrus в Python 3.8
- Поиск наиболее частого элемента в списке
- Синтаксис переменных цикла в Python
- Решатель судоку на Python с pygame
- Использование функции enumerate()
- Отправка POST запроса на сервер.
- inspect в Python: анализ кода
- Функция findall() для поиска вхождений строки
- Создание словаря с значением по умолчанию
- Обязательные аргументы в Python
- Функция zip() для объединения списков
- Загрузка постов Instagram
- Метод ifloordiv для пользовательских классов
- Работа с буфером обмена на Python
- Создание класса в Python
- Операторы увеличения и уменьшения переменной
- Создание новых списков в Python
- Хеширование паролей с использованием salt
- Ускорение выполнения кода в Python
- Управление памятью в numpy.
- Работа с контекст-менеджером «with»
- Модуль xkcd: загрузка комиксов
- Поиск частых элементов в списке
- Инициализация переменных
- Python Translator: создание локальных переводчиков
- Аннотации типов в Python
- Декодирование байтов в строку
- Делегирование в Python
- Функция reversed() в Python
- Логирование с Logzero: ротация файла
- Очистка вывода в Python
- Переворот строки
- Создание словарей в Python
- Удаление специальных символов с помощью re.sub
- Применение команды break
- Передача неизвестных аргументов в Python.
- Python Метод Union Множеств
- Метод rrshift для пользовательских объектов
- Тайное преобразование типа ключа
- Библиотека funcy: удобные утилиты
- Проверка подстроки в строке
- Закрытие файла в Python















