Курс 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"
- Генерация чисел с range()
- Логирование с Logzero: ротация файла
- Многострочные комментарии в Python
- Codecademy в Telegram
- Декоратор Ajax required
- Пересечение списков с использованием множеств
- Передача аргументов в Python
- Изучение объектов с помощью dir()
- Вычисление времени выполнения
- Работа с Path в Python
- Вычисление натурального логарифма в NumPy
- Преобразование текста в речь с Python
- Метод __index__ в Python
- Инверсия списка и строки
- Преобразование символов в нижний регистр
- Применение функции к списку
- Обратное распространение ошибки
- Поиск шаблона в начале строки
- Обработка ошибок в Python
- Поиск уникальных и повторяющихся элементов
- Подсчет элементов в Python
- Переворот строки с использованием цикла
- Оператор += в Python
- Преобразование данных в Python
- Управление виртуальными средами в Python
- Принципы Zen of Python
- Проверка переменных окружения в Python
- Функция count() в Python
- Сортировка с помощью key
- Оператор assert в Python
- Метод get() для словарей
- Дефолтные параметры в Python
- Тернарный оператор в Python
- Использование функции product
- Список и кортеж в Python
- Нарезка списков в Python
- Копирование объектов в Python
- Объединение словарей в Python
- Удаление первого элемента списка
- Оператор «not» в Python
- Namedtuple в Python
- Работа с кортежами















