Курс 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"
- Просмотр файла в Jupyter Noteboo
- Сортировка HTML-элементов
- Оператор «is not» в Python
- Очистка данных с помощью pandas
- Поиск анаграмм с Counter
- Работа с модулем cmath
- Многострочные строки в Python
- Извлечение данных из JSON
- Оптимизация методов в Python 3.7
- Создание объекта времени
- Импорт модулей и пакетов в Python
- Получение списка кортежей из словаря
- Генераторы в Python
- Разделение функций на этапы
- Проверка дубликатов в Python
- Безопасные SQL-запросы в Python 3.11
- Удаление элемента по индексу в Python
- Удаление URL-адресов в Python
- Модуль future Python
- Распаковка элементов последовательности
- Профилирование данных с Pandas
- Проверка типов с использованием isinstance
- Отладчик pdb: начало работы
- Библиотека sh: удобные команды терминала
- Удаление элементов из списка
- Работа с GitHub в Telegram
- Использование эмодзи в Python
- Работа с асинхронными задачами в Python
- Определение имен функций
- Оператор «or» в Python
- Проекты на Python
- Использование type hints
- Передача аргументов через **arguments
- Проверка надежности пароля на Python
- Объединение словарей в Python 3.5+
- Списковые включения в Python
- Обучение модели с указанием эпох
- Виртуальное окружение Python
- Генераторы по генератору
- Шаблоны и наследование в Flask
- Различия символов в Python
- Установка и использование модуля «howdoi»
- Аннотации типов в Python
- Разделение строки с помощью re.split()
- Использование html-скриптов в Jupyter Notebook
- Методы обработки строк в Python















