Курс 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"

  1. Расчет времени выполнения
  2. Профилирование кода
  3. Генераторные функции в Python
  4. Атрибуты класса и экземпляра
  5. Возврат нескольких значений
  6. Построение графиков в Matplotlib
  7. Кортежи в Python: особенности и преимущества
  8. Работа со слайсами
  9. Синтаксис переменных цикла в Python
  10. Условное добавление элементов в список
  11. Python 3.12: переиспользование кавычек
  12. Переименование файлов в Python
  13. Новшества Flask 2.0
  14. Работа с временем в Python
  15. Оператор деления для класса Rational
  16. Протокол управления контекстом
  17. Функция enumerate() в Python
  18. Хэш-функции и метод цепочек
  19. Множественное назначение в Python
  20. Преобразование текста в речь с Python
  21. Комментарии в Python
  22. Python Метод sleep() из time
  23. Оператор умножения для вектора
  24. Документация функции help() в Python
  25. Подчеркивание в REPL
  26. Получение пути к текущему скрипту с помощью os
  27. Рекурсия для обращения строки
  28. Непрерывная проверка в Python
  29. Методы работы со списками
  30. Pillow: работа с изображениями
  31. Многострочные комментарии в Python
  32. Модуль sys: основы
  33. Декораторы с аргументами
  34. Добавление элемента в список.
  35. Запуск Python из интерпретатора
  36. Concrete Paths в Python
  37. Сериализация объектов в Python
  38. Форматирование объектов с модулем pprint
  39. Асинхронное выполнение задач в Python
  40. Бинарный поиск
  41. Дизассемблирование Python кода
  42. Расчет времени выполнения кода
  43. Глубокое копирование объектов
  44. Встроенные функции Python
  45. Magic Commands — улучшение работы с Python

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