Курс 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"
- Парсинг веб-страниц с Beautiful Soup
- Работа со случайными элементами
- Удаление файлов и папок в Python
- Получение срезов итераторов
- Antigravity модуль
- Инверсия списка и строки
- Обработка элементов в Python
- Создание словарей и множеств в Python.
- Объединение коллекций в Python
- Объединение множеств в Python
- Преобразование числа в восьмеричную строку
- Конкатенация строк в Python
- Поиск простых чисел
- Работа с deque из collections
- Работа с контекст-менеджером «with»
- Обработка исключений с блоком else
- Глобальные переменные в Python
- Работа с рекламными данными в Pandas
- Кортеж в Python: создание и использование
- Настройка вывода NumPy
- Частичное совпадение ввода
- Открытие, чтение и закрытие файла
- Извлечение аудио из видео
- Создание функций высшего порядка
- Изменение логики работы с временем
- Python-dateutil — работа с датами
- Цикл for в Python
- Расчет времени выполнения кода
- Списковый компрехеншен.
- Получение списка кортежей из словаря
- Метод rxor для операции побитового исключающего «или»
- Анализ кода — Python
- split() без разделителя
- Генерация случайных данных в NumPy
- Функция product() из itertools
- Реализация метода __abs__ в Python
- Метод join() для объединения элементов строки
- Многострочные комментарии в Python
- Оператор space-invader
- Метод bool() в Python
- Названия переменных
- Работа с CSV в Python
- Управление экспортом элементов
- Идентификатор объекта в Python
- Объединение списков с помощью zip
- Манипуляция формой массива в Numpy















