Курс Python → Генераторы в Python
Генераторные функции — это мощный инструмент в Python, который позволяет создавать итераторы с минимальным использованием памяти. Вместо того чтобы создавать список или кортеж сразу со всеми значениями, генераторная функция генерирует значения по мере необходимости. Это особенно полезно, когда у вас есть большой объем данных, которые необходимо обработать поэлементно.
Для создания генераторной функции в Python используется ключевое слово yield. Когда интерпретатор Python встречает оператор yield в функции, он приостанавливает выполнение функции и возвращает значение. При следующем вызове функции выполнение продолжается с того же места, где оно было приостановлено, и продолжается до следующего оператора yield.
def my_generator():
for i in range(5):
yield i
gen = my_generator()
for value in gen:
print(value)
В этом примере функция my_generator является генераторной функцией, которая возвращает числа от 0 до 4. При вызове функции my_generator() создается объект-генератор, который можно использовать в цикле for для обхода всех значений, сгенерированных функцией.
Использование генераторных функций особенно полезно в случаях, когда необходимо применить серию фильтров или обработчиков к элементам списка. Вместо того чтобы создавать промежуточные списки с отфильтрованными значениями, можно использовать генераторы для ленивой обработки данных, что позволяет сэкономить память и улучшить производительность.
Другие уроки курса "Python"
- Инициализация структур данных
- Функции с необязательными аргументами
- Строковое представление объектов
- Переопределение метода __floordiv__
- Удаление элемента по индексу в Python
- Объединение словарей в Python
- Экспорт данных с помощью writefile
- Получение частей дроби
- Преобразование списка в словарь через генератор
- Метод rmatmul для обратного матричного умножения
- Сортировка элементов в Python
- Python enumerate() функции
- Округление чисел с помощью round
- Множественное присваивание в Python
- Проверка файла .py на синтаксис.
- Проблема сравнения словарей
- Запуск асинхронной корутины
- Python: изменяемые и неизменяемые коллекции
- Работа с массивами в Numpy
- Управление ресурсами с контекстными менеджерами
- Импорт и использование модулей в Python
- Метод __ilshift__ для битового сдвига влево
- Создание генераторов
- Импорт модулей в Python 3.12
- Цепные операции в Python
- Функция divmod() в Python
- Работа с кортежами в Python
- Concrete Paths в Python
- Метод setitem в Python
- Метод pos в Python
- Удаление дубликатов в pandas
- Классы данных в Python
- Форматирование данных с помощью pprint
- Работа с timedelta
- Регулярные выражения: метод match
- Поиск наиболее частого элемента в списке
- Подсчет часто встречающихся элементов
- Импорт объектов из модулей
- Метод rsub для пользовательских чисел
- Оформление кода по PEP 8
- Хранение данных с помощью dataclasses
- Вложенные циклы в Python
- Ограничение итераций в Python
- Функция zip() в Python
- Измерение времени выполнения в Python
- Обновление данных через PUT запрос
- Просмотр внешнего файла в Python
- Итерация по итерируемым объектам
- Логические значения в Python















