Курс 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"
- Работа с рекламными данными в Pandas
- Удаление элементов из списка в Python
- Сравнение def и lambda-функций
- Модуль os: работа с файлами и папками
- Логирование с Loguru
- Бесконечные списки в Python
- Использование модуля __future__
- Метод classmethod
- *args и **kwargs в Python
- capitalize() — изменение регистра первого символа строки
- Метод pop() списка
- Flask: создание веб-приложений
- Работа с NumPy массивами
- Удаление элемента из списка в Python
- Получение текущего времени в Python
- Списковое включение в Python
- Сортировка и разворот списка
- Работа с URL-адресами в Python
- Преобразование типов данных в set comprehension
- Создание и операции с дробями
- Декораторы в Python
- Применение функции к списку
- Работа со случайными элементами
- Капитализация строк
- Встраивание HTML в Jupyter Notebook
- Округление чисел с помощью round
- Функция print() — вывод информации
- Генераторы в Python
- Сравнение объектов в Python
- Декораторы с аргументами
- Работа с каталогами в Python
- Создание графиков в терминале
- Передача аргументов через **arguments
- Проверка типов с использованием isinstance
- Форматирование строк с f-строками
- Python: отсутствие точек с запятыми
- Форматирование строк в Python
- Получение атрибутов и методов класса
- Декоратор @override
- CLI-инструмент howdoi
- Форматирование данных с помощью pprint
- Получение ID текущего процесса
- Аргумент по умолчанию
- Протокол управления контекстом
- Работа с deque в Python
- Преобразование range в итератор















