Курс Python → Генераторы в Python
Генераторы в Python — это функции, которые используют ключевое слово `yield` вместо `return`. Когда функция с `yield` вызывается, она возвращает объект-генератор, который можно итерировать по одному значению за раз. При каждой итерации генератор запоминает свое состояние, чтобы продолжить выполнение с того же места. Это позволяет экономить память и увеличивает производительность при работе с большими объемами данных.
Пример создания простого генератора:
def my_generator():
for i in range(5):
yield i
gen = my_generator()
for val in gen:
print(val)
В этом примере функция `my_generator` возвращает генератор, который поочередно выдает числа от 0 до 4. При каждой итерации цикла `for` будет выводиться следующее значение, не храня все значения в памяти одновременно.
Генераторы также могут быть бесконечными, если они используют цикл `while` или рекурсию. Они позволяют эффективно обрабатывать потенциально бесконечные последовательности данных, такие как потоки сетевых пакетов или событий.
Помимо создания собственных генераторов, в Python есть встроенные функции, которые возвращают генераторы. Например, функция `range()` возвращает ленивую последовательность чисел, что позволяет эффективно работать с большими диапазонами значений без необходимости хранить их все в памяти.
Использование генераторов в Python помогает сделать код более читаемым, компактным и эффективным. Они позволяют работать с данными по требованию, что особенно важно при обработке больших объемов информации или при работе с потенциально бесконечными последовательностями.
Другие уроки курса "Python"
- Установка User-Agent в Python
- Оператор (*) в Python
- Дефолтные параметры в Python
- Фильтрация входных данных в Python
- Импорт классов из другого файла
- Метод matmul для умножения матриц
- Метод get() в Python
- Обработка StopIteration в Python
- Переименование файлов в Python
- Анализ кода — Python
- Python и Монти Пайтон
- Именованные срезы в Python
- Принципы Zen of Python
- Просмотр атрибутов и методов класса
- Библиотека Chartify: руководство
- Работа с асинхронными задачами в Python
- Работа с типами данных в Python с помощью pydantic.
- Магические методы в Python
- Работа с JSON данными в Python
- Декоратор total_ordering для сравнения объектов
- Работа с NumPy массивами
- Применение функции map() в Python
- Нарезка списков в Python
- Работа с timedelta в Python
- Метод join() для объединения элементов в строку.
- Синхронизация доступа к ресурсам
- Создание словарей в Python
- Создание объекта timedelta
- Разделение строки с помощью re.split()
- Работа со строками в Python.
- Отделение звука от видео
- Разделение строки в Python
- Переопределение метода __pow__
- Закрытие файла в Python
- Удаление ключа из словаря
- Метод __irshift__ для Python
- Запуск асинхронной корутины
- Метод index() в Python
- Операции с комплексными числами
- Мониторинг работы программы Py-spy
- Оптимизация создания строк
- Numpy: использование Ellipsis
- Создание уникального множества
- Оператор распаковки в Python
- Поиск наиболее частого элемента
- Генераторы словарей и множеств















