Курс 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"
- Измерение времени выполнения кода
- Функция enumerate() в Python
- Оптимизация методов в Python 3.7
- Добавление кнопки в tkinter
- Метод eq для сравнения объектов
- Многоточие в Python
- Создание класса в Python
- Создание новой даты в Python
- Работа с *args и **kwargs в Python
- Закрытие файла в Python
- Подсчет элементов с помощью Counter из collections
- Настройка вывода в Numpy
- inspect в Python: анализ кода
- Логирование с Logzero
- Применение функции к списку
- Список и кортеж в Python
- Очистка данных с Pandas
- Мониторинг работы программы Py-spy
- Защита данных в Python
- Экспорт функций в Python
- Преобразование списка в словарь через генератор
- Обработка исключений в Python
- Функция zip() в Python
- Изменение списка срезами
- Просмотр внешних файлов в %pycat
- Многострочные строки в Python
- Чтение бинарного файла в Python.
- Создание .exe файла с pyinstaller
- List Comprehension Tutorial
- Глубокое копирование объектов
- Нахождение хеша для бесконечности и NaN в Python
- Лямбда-функции в Python
- Метод is_absolute() для PurePath
- Numpy: использование Ellipsis
- Чтение и запись TOML-конфигов
- Удаление элемента по индексу в Python
- Обработка ошибок ввода данных
- Логирование с Logzero
- Удаление дубликатов из списка
- Оператор continue в Python
- Работа с исключениями в Python
- Уникальность ключей в словаре
- Названия переменных
- Удаление ключа из словаря
- Генераторы списков
- Реверс строки в Python
- Освоение Python
- Работа с NumPy.linalg















