Курс 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"
- Использование type hints
- Доступ к локальным переменным
- Переопределение оператора % для объектов
- Сравнение def и lambda-функций
- Объединение Python и Shell
- Печать календаря в Python
- Работа с многоуровневыми словарями в Python
- Оператор морж в Python 3.8
- Работа с комплексными числами
- Разделение строк в Python
- Оптимизация параметров в Python
- Скачать видео с YouTube
- Разработка Telegram-ботов
- Python enumerate() использование
- Получение пути к текущему скрипту с помощью os
- Генераторы списков
- Операции со строками в Python
- 9 уловок для чистого кода
- F-строки в Python 3.8
- Операторы сравнения в Python
- Бесконечная проверка в Python
- Создание итерируемых объектов
- Функции range() в Python
- Функция format() в Python
- Генерация случайных чисел в Python
- Работа с CSV файлами в Python
- Concrete Paths — метод .with_suffix()
- Тестирование с unittest
- Чтение и запись TOML-конфигов
- Модуль antigravity: генерация координат
- Сложные типы данных в Python
- Генераторы данных
- Копирование и вставка текста в Python
- Округление чисел с помощью round
- Структуры данных в Python
- Именование переменных в Python
- Работа с модулем glob в Python
- Оператор объединения словарей
- Встроенные функции Python
- Оператор continue в Python
- Переворот строки
- Замыкания в Python
- Оператор walrus в Python
- Установка пакета в Python
- Определение размера папок в Python















