Курс Python → Генераторы в Python

Генераторы (generators) в Python представляют собой специальный тип функций, которые позволяют создавать итераторы. Они позволяют нам создавать последовательности значений, не занимая много памяти, так как значения генерируются по требованию.

Давайте рассмотрим пример генератора my_range, который создает итератор, возвращающий числа от start до stop с заданным шагом step:


def my_range(start, stop, step):
    while start < stop:
        yield start
        start += step

В данном примере функция my_range использует ключевое слово yield для возврата значений по одному при каждом вызове функции next(). Таким образом, мы можем итерироваться по результатам генератора, не занимая лишнюю память для хранения всей последовательности чисел.

Использование генераторов особенно удобно при работе с большими объемами данных, когда создание списка значений занимает много ресурсов. Генераторы позволяют нам эффективно обрабатывать данные в потоке, по мере их генерации, что повышает производительность программы.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Оптимизация памяти с __slots__
  2. Модуль pprint
  3. Метод enumerate() в Python
  4. Перемещение и удаление файлов в Python
  5. Копирование словарей и списков в Python
  6. Проверка переменных окружения в Python
  7. Анализ кода — Python
  8. Отображение HTML кода в Python
  9. Фильтрация данных в Python.
  10. Инициализация переменных
  11. Запуск Python из интерпретатора
  12. Модуль math: константы π и e
  13. Списковое включение в Python
  14. Оператор is в Python
  15. Класс-оболочка для словарей
  16. Строки в Python: апострофы и кавычки
  17. Преобразование букв в нижний регистр
  18. Итерация по итерируемым объектам
  19. Инверсия списков и строк в Python
  20. Обучение модели с указанием эпох
  21. Метод округления чисел
  22. Работа с датами в Python
  23. Хранение данных с помощью dataclasses
  24. Преобразование данных в Python
  25. Получение ID текущего процесса
  26. Сравнение def и lambda-функций
  27. Реализация метода __abs__ в Python
  28. GitHub в Telegram: подписка на уведомления
  29. Преобразование символов в нижний регистр
  30. Метод join() для объединения элементов строки
  31. Виртуальные среды в Python
  32. Метод __call__ в Python
  33. Разработка игры Pong с turtle
  34. Оптимизация поиска в словарях
  35. Отправка POST-запроса в REST API
  36. Наиболее частотные элементы с помощью Counter
  37. Подчеркивание в REPL
  38. Очистка данных с Pandas
  39. Использование функции enumerate()
  40. Обмен данными с asyncio.Queue
  41. kwargs в Python
  42. Проблемы с именами переменных
  43. Замена подстроки
  44. Создание задания в Cron
  45. Инверсия списка и строки
  46. Метод ipow для возведения в степень

Marketello читают маркетологи из крутых компаний