Курс 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"
- Генерация QR-кодов с библиотекой qrcode
- Создание вложенного генератора
- Измерение времени выполнения кода
- Инверсия списка и строки
- Удаление falsy-значений из списка с помощью filter
- Возврат нескольких значений
- Копирование объектов в Python
- Поиск HTML-элементов с BeautifulSoup
- Метод classmethod
- Оптимизация создания строк
- Новшества Flask 2.0
- Аннотации типов в Python
- Обработка ошибок в JSON данных
- Поиск шаблона в начале строки
- Запрос DELETE с библиотекой requests
- Модуль subprocess: запуск внешних команд
- Модуль inspect: получение информации о объектах
- Defaultdict в Python
- Списковые включения в Python
- Преобразование типов данных в set comprehension
- Модуль os в Python: работа с файлами
- Подписка на каналы разработчиков
- Метод gt в Python
- Модуль sys: основы
- Ограничение ресурсов в Python
- GitHub в Telegram: подписка на уведомления
- Метод clear для коллекций
- Оператор += для объединения строк
- Транспонирование матрицы в Python
- Генераторы в Python
- Оператор assert в Python
- Управление памятью в Python
- Автоматизация скриптов на AWS Lightsail.
- Создание списков в Python
- Роль ключевого слова self
- Блок else в циклах Python
- Зарезервированные слова в Python
- Генераторные функции в Python
- Метод bool() в Python
- Профилирование кода
- Декораторы в Python
- Форматирование кода на Python
- Возвращение нескольких значений
- Python reversed() функция
- Область видимости переменных в Python
- Декораторы в Python
- Метод __index__ в Python















