Курс 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
- Глобальные переменные в Python
- Работа со строками в Python
- Использование модуля __future__
- Обмен значений переменных в Python
- Разрешение имен в Python
- Исправление ошибки NameError
- Работа со строками в Python
- Принцип одной функции
- Объединение строк с помощью метода join
- Конструктор в Python
- Создание копии итератора
- Метод join() для объединения элементов строки
- Обход словаря в Python
- Переопределение унарных операторов
- Метод округления чисел
- Метод enumerate() в Python
- Форматирование данных с помощью pprint
- Переопределение метода __or__()
- Модуль subprocess: запуск внешних команд
- Разработка Telegram-ботов
- Оформление текста в консоли с TermColor
- Работа со списками
- Виртуальные среды в Python
- Применение функции к списку
- Метод setdefault() в Python
- Особенности ключей словаря в Python
- Работа с defaultdictами в Python
- Асинхронное выполнение задач в Python
- Работа с CSV файлами в Python
- Установка переменной среды в Python
- Создание и использование ChainMap
- Возврат нескольких значений
- Декораторы в Python
- EMOT преобразование эмодзи в текст
- Экспорт данных в файл.
- Получение текущей даты и времени с помощью datetime
- Декораторы в Python
- Фильтрация входных данных в Python
- Применение функций в Python
- Использование *args
- Модуль xkcd: загрузка комиксов
- Передача неизвестных аргументов в Python.
- Работа с zip-архивами в Python
- Пропуск строк в файле с itertools
- Работа с файловой системой в Python
- Изменение логики работы с временем















