Курс 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"
- Генерация тестовых данных с factory_boy
- Сравнение объектов в Python
- Форматирование данных с помощью pprint
- Упрощение условных выражений с тернарным оператором
- Операции с массивами в NumPy
- PrettyTable: создание таблицы
- Метод join() для объединения элементов
- Преобразование объекта в строку
- Обработка исключения UnboundLocalError
- Ускорение выполнения кода в Python
- Получение частей дроби
- Форматирование строк в Python
- Многострочные комментарии в Python
- Инверсия списка и строки
- Перезагрузка оператора в Python
- Основы Python за 14 дней
- %pinfo: получение информации об объекте
- Преобразование строки в число
- Bootle — простой веб-фреймворк
- Управление контекстом с помощью декоратора contextmanager
- Генераторы данных
- Управление доступом к модулю
- Оператор is в Python
- Преобразование в float
- Запуск файлового сервера
- Функции с необязательными аргументами
- Подсчет часто встречающихся элементов
- Встроенные функции Python
- Создание тестовых данных с Faker
- Удаление файлов с shutil.os.remove()
- Извлечение новостей с помощью newspaper3k
- Операторы увеличения и уменьшения в Python
- Генерация фальшивых данных с Faker
- Решение переменной Шредингера
- Форматирование строк в Python
- Метод __iand__ для пользовательских классов
- Нахождение самого длинного слова в списке с помощью max
- Установка и использование Python-dateutil
- Работа с часовыми поясами в Python
- Метод ifloordiv для пользовательских классов
- Аннотации типов в Python
- Оптимизация создания строк
- Метод clear для коллекций
- Открытие и запись файлов
- Безопасные SQL-запросы в Python 3.11















