Курс 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"
- Модуль inspect: получение информации о объектах
- Функции в Python
- Обработка ошибок в Python
- Проблемы с dict в Python
- Генерация случайных чисел в Python
- Разделение строки с регулярными выражениями
- Перетасовка списков в Python
- Работа со строками в Python.
- Работа с функцией next() в Python
- Работа со строками в Python
- Установка и загрузка Instaloader
- Выбор редактора кода.
- Автоматизация скриптов на AWS Lightsail.
- Работа с файлами в Python
- Подсказки типов в Python
- Форматирование строк с f-строками
- Модуль inspect
- Очистка вывода в Python
- Разделение строки в Python
- Срезы в Numpy
- Множественное присваивание в Python
- Работа с утверждениями в Python
- Профилирование данных с Pandas
- Определение объема памяти объекта
- Mad Libs Generator
- Метод index() в Python
- Профилирование с cProfile
- Counter() — подсчет элементов
- Python и Монти Пайтон
- Форматирование вывода с F-строками
- Кортежи в Python: особенности и преимущества
- Срез в Python
- Библиотека funcy: удобные утилиты
- Обработка исключений в Python
- Создание итератора
- lru_cache оптимизация функций
- Оператор «or» в Python
- Объединение объектов в Python
- Сортировка элементов в Python
- Преобразование данных в Python
- Преобразование документов в PDF с помощью Spire.Office
- Логирование с Logzero
- Оператор in для Python
- Установка и использование TensorFlow















