Курс 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
- Оператор «and» в Python
- Python Аргументы по умолчанию
- Проверка переменных окружения в Python
- Транспонирование 2D-массива с помощью zip
- Хешируемые ключи в Python
- Подсчет элементов с помощью Counter
- Скрытие вывода данных
- Форматирование строк в Python
- Просмотр внешнего файла в Python
- Оптимизация поиска в словарях
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Метод Self в Python
- Установка и использование модуля Wikipedia
- Создание новых списков через list comprehensions
- Импортирование в Python
- Метод rrshift для пользовательских объектов
- Оптимизация интернирования строк
- Списки в Python: синтаксис представления
- Декоратор total_ordering для класса Point
- Работа с изображениями PIL
- Преобразование многоуровневого словаря
- Метод сравнения объектов в Python
- Хранение данных
- Лямбда-функции в Python
- Python Enumerate
- Функция all() в Python
- Структура данных словарь в Python
- Списковый компрехеншен.
- Подсчет часто встречающихся элементов
- EMOT преобразование эмодзи в текст
- Метод rxor для операции побитового исключающего «или»
- Работа с кортежами в Python
- Работа с географическими данными в Python
- Генераторные выражения и islice.
- Обработка исключения UnboundLocalError
- Defaultdict в Python
- Обработка исключений в Python
- Красивый вывод списка
- Работа с контекстными переменными
- Управление пакетами с pip
- Вложенные функции в Python
- Декораторы в Python
- Вывод баннеров















