Курс 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"
- Изменение IP-адреса в Python
- Python UserString — создание подклассов строк
- Использование двоеточия в Python
- Хешируемые ключи в Python
- Расширение операции побитового «и» в Python
- Python reversed() функция
- Проверка индексов коллекции
- Поиск наиболее частого элемента списке
- Сортировка HTML по CSS-селектору
- Переопределение метода __floordiv__
- Декораторы с @wraps
- Сортировка HTML-элементов
- Сложные типы данных в Python
- Python: отсутствие точек с запятыми
- Декоратор Property в Python
- Сортировка с помощью параметра key
- Декораторы в Python
- Установка и использование библиотеки google
- Многострочные комментарии в Python
- Подсчет элементов в Python
- Извлечение аудио из видео
- Атрибуты объекта в Python
- Параллельные вычисления в Python
- Удаление файлов и папок в Python
- Вычисление натурального логарифма в NumPy
- Распаковка аргументов в Python
- Измерение времени выполнения кода с использованием time
- Избегайте ошибку FileNotFoundError
- Работа с множествами в Python
- Непрерывная проверка в Python
- Декоратор Ajax required
- Оператор += в Python
- Определение наиболее частого элемента с помощью collections.Counter
- Python Тесты и Гайды
- Метод getitem для доступа к элементам последовательности
- Сравнение def и lambda в Python
- Глобальные переменные в Python
- Метод invert для побитового отрицания
- Функции any() и all() в Python
- Оптимизация памяти с slots
- Оценка точности модели
- Генераторы в Python
- Отладка утечек памяти в Python
- Исправление ошибки NameError
- Метод Self в Python
- Удаление элемента из списка
- Python и Юникод: работа с цифрами















