Курс 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"
- Monkey Patching в Python
- Установка и использование модуля Wikipedia
- Отображение графиков в Jupyter с Matplotlib
- Создание виртуальной среды
- Создание и использование модулей в Python
- Функция map() в Python
- Преобразование текста в речь с Python
- Определение основы слова с showballstemmer
- Удаление знаков препинания в Python
- Метод __index__ в Python
- Скачать видео с YouTube
- Преобразование списка в словарь через генератор
- Профилирование данных с Pandas.
- Работа с модулем cmath
- Генерация случайных чисел в Python
- Оператор «is not» в Python
- Работа со временем в Python
- Игра Виселица на Python
- Функции высшего порядка в Python
- Метод count в Python: почему count(», ») возвращает 4?
- Получение текущей даты и времени
- Основы Python
- Модуль itertools: комбинации и перестановки
- Преобразование регистра строк
- Работа с датой и временем в Python
- Генераторы в Python
- Python: динамическая типизация и проверка типов
- Преобразование числа в восьмеричную строку
- Создание итерируемых объектов
- Объединение, распаковка и деструктуризация
- Вычисление разности множеств в Python
- Создание функций высшего порядка
- Управление виртуальными окружениями в Python
- split() — разделение строки
- Поиск подстроки в строке
- Поиск email
- Модуль math: константы π и e
- Конкатенация строк в Python
- Работа с SQLite в Python
- Оператор «not» в Python
- Замена текста с помощью sub
- Поиск всех индексов подстроки
- Numpy: объединение массивов
- JMESPath в Python
- Работа с областями видимости переменных















