Курс 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"
- Конкатенация списков в Python
- Применение функции map() в Python
- Генерация случайных данных в NumPy
- Анонимные функции Lambda
- Очистка списка от False, None, 0, «»
- Определение объема памяти объекта
- Очистка данных в Python
- Создание вложенных циклов for
- Создание и обучение модели с Keras
- Создание новых списков в Python
- Python UserString — создание подклассов строк
- Любовь к Python
- Python enumerate() функции
- Генератор бросков кубиков
- Освобождение памяти в Python
- TON Smart Challenge #2: участие и подготовка
- Вычисление разности множеств в Python
- Python enumerate() для работы с индексами
- Lambda Functions in Python
- Подсчет элементов в Python
- PrettyTable: создание таблицы
- Создание namedtuple из словаря
- Настройка шрифта и цвета в Tkinter
- Модуль subprocess: запуск внешних команд
- Методы list в Python
- Считывание бинарного файла в Python
- Работа с кортежами в Python
- Хранение переменных в словаре.
- Фильтрация списка чисел
- Декоратор @override
- Генераторы в Python
- Поиск индексов в списке
- Декораторы в Python
- Работа с переменными в Python
- Antigravity модуль
- Вакансии в Nebius
- Метод Self в Python
- Подсчет элементов с помощью Counter из collections
- Объединение списков с использованием itertools.chain
- Сокращение ссылок с pyshorteners
- Операция += для списков
- Big O оптимизация
- Игра «Камень, ножницы, бумага» — Python
- F-строки в Python 3.8
- Очистка данных с Pandas
- Возврат нескольких значений из функции
- Оператор морж в Python 3.8
- Объединение словарей в Python
- Проверка переменных окружения в Python















