Курс 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"
- Работа с модулем random
- Генераторы в Python
- Создание пустых функций и классов в Python
- Сравнение def и lambda функций в Python
- Форматирование строк в Python
- Хранение данных с помощью dataclasses
- JSON-esque в Python
- Фильтрация списка чисел
- Упрощенный вывод данных в Python
- Оптимизация интернирования строк
- Цикл for в Python
- Проблемы с dict в Python
- Тестирование функции сложения
- Подсчет элементов с помощью Counter
- Исправление ошибки NameError
- Преобразование range в итератор
- Удаление пробелов методом translate()
- Подписка на @SelectelNews
- Генераторы в Python
- Оператор Walrus в Python 3.8
- Удаление элементов из списка
- Итерация по копии коллекции
- Стать Python-разработчиком
- Компиляция регулярных выражений
- Работа с getopt
- Проверка существования переменной с оператором :=
- Игра «Камень, ножницы, бумага» — Python
- Порядок и длина множеств в Python
- Декодирование строк в Python
- Конструктор в Python
- Создание генераторов
- Замена текста в Python
- Метод append() для списка
- Создание таблиц в Python с PrettyTable
- Метод get для словарей
- Применение команды break
- Создание обратного итератора
- Модуль functools в Python
- Обработка данных в Python
- Сортировка списка по индексам
- Параллельные вычисления в Python
- Установка и использование pyshorteners
- Преобразование Excel в PDF с Spire.XLS
- Переопределение метода delitem в Python
- Python 3.12: Псевдонимы типов
- ChainMap.new_child() — добавление нового словаря
- Python Translator: создание локальных переводчиков















