Курс 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"
- Очистка списка от False, None, 0, «»
- Функция zip() в Python
- Метод ipow для возведения в степень
- Избегайте пустого списка
- Философия Python
- Распаковка значений в Python
- Декораторы в Python
- Тип данных TypeVarTuple
- Сортировка в Python
- Раздувающийся словарь в Python
- Объединение списков в Python
- Ошибка NotImplemented в Python
- Участие в LP стейкинге Waves
- Ключевое слово global в Python
- Работа со словарями с defaultdict из collections
- Копирование словарей и списков в Python
- Работа с путями в Python
- Оператор (*) в Python
- Работа с CSV файлами в Python
- Лямбда-функции в defaultdict
- Создание списков в Python
- Названия переменных
- Работа с пакетами
- Открытие и редактирование скриптов Python
- Атрибуты класса и экземпляра
- Логические операторы в Python
- Тест скорости набора текста на Python
- Python: библиотеки и функции
- Просмотр внешних файлов в %pycat
- Измерение потребления памяти при сортировке
- Генераторы в Python
- Асинхронный код в Python
- Добавление кнопки в tkinter
- Работа с CSV в Python
- Создание вкладок с TKinter
- Структуры данных в Python
- Присвоение значений переменным в Python
- Работа с GitHub в Telegram
- Создание .exe файла с pyinstaller
- Операторы объединения в Python 3.9
- Возврат нескольких значений
- Оптимизация интернирования строк
- Python: Фильтрация списков с помощью filter()
- Распаковка аргументов в Python
- Модуль array: создание и использование массивов
- Преобразование регистра строк
- Измерение времени выполнения
- Установка Git и AWS CLI















