Курс Python → Генераторные функции в Python
Генераторные функции (generator functions) в Python представляют собой специальный вид функций, которые позволяют создавать итераторы. Итераторы позволяют поэлементно обходить коллекции данных, не загружая все элементы в память сразу. Если у вас есть необходимость фильтровать или обрабатывать элементы списка, то использование генераторных функций может быть удобным решением.
Для определения генераторной функции в Python используется ключевое слово yield. Когда функция содержит оператор yield, она становится генераторной функцией. Вместо того чтобы возвращать результат с помощью return, генераторная функция возвращает объект-генератор, который может быть использован для итерации по значениям, генерируемым функцией по одному.
Одним из главных преимуществ использования генераторных функций является экономия памяти. Поскольку генераторы не хранят все элементы в памяти сразу, они позволяют эффективно обрабатывать большие объемы данных. Кроме того, генераторы могут улучшить читаемость кода и упростить его структуру, особенно при работе с большими коллекциями данных.
def filter_even_numbers(numbers):
for number in numbers:
if number % 2 == 0:
yield number
even_numbers = filter_even_numbers([1, 2, 3, 4, 5, 6])
for number in even_numbers:
print(number)
В приведенном примере мы создаем генераторную функцию filter_even_numbers, которая фильтрует четные числа из списка. Затем мы создаем объект-генератор even_numbers, который мы можем использовать для итерации по отфильтрованным значениям. При вызове функции print будут выведены только четные числа из списка.
Другие уроки курса "Python"
- Функции в одну строку
- Считывание бинарного файла в Python
- Официальный канал Python в Telegram
- Область видимости переменных
- Множественное наследование в Python
- Принципы программирования
- Профилирование кода на Python
- Python Тесты и Гайды
- Пересечение списков с использованием множеств
- Безопасные SQL-запросы в Python 3.11
- Ошибка NotImplemented в Python
- Объединение кортежей в Python
- Установка виртуального окружения Python
- Оператор Walrus в Python 3.8
- Освоение Python
- Передача неизвестных аргументов в Python.
- Обработка ошибок в Python
- Работа с изображениями PIL
- Операторы объединения в Python 3.9
- Основы работы с базами данных в Python
- Прокачанный трейсинг ошибок
- Оптимизация создания строк
- Комментарии в Python
- Потоковый ввод в Python
- Логирование с Logzero
- Декоратор total_ordering для класса Point
- Функциональное программирование.
- Присвоение и ссылки
- Применение функции к списку
- Разработка Telegram-ботов
- Область видимости переменных
- Объединение списков в Python.
- TON Smart Challenge #2: участие и подготовка
- Оператор match в Python
- Оператор объединения словарей
- Работа с CSV файлами в Python
- Работа с парами ключ-значение
- Управление памятью в numpy.
- Объединение списков в Python
- Преобразование символов в нижний регистр
- Функция reduce() из модуля functools
- Удаление ссылок в Python
- Возврат нескольких значений
- F-строки в Python 3.8
- Оператор assert в Python
- Измерение времени выполнения кода















