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

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

Для создания генератора в Python используется ключевое слово yield вместо return. Когда функция с генератором вызывается, она не выполняется полностью, а возвращает объект-генератор, который можно использовать для итерации. Каждый раз, когда вызывается метод next() или используется цикл for, функция продолжает выполнение с того момента, где был вызван yield, и возвращает значение.


def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b
        
fib = fibonacci()
for i, num in enumerate(fib):
    if i == 10:
        break
    print(num)

В приведенном выше примере определен генератор fibonacci, который возвращает бесконечную последовательность чисел Фибоначчи. При каждом вызове метода next() или итерации циклом for, генератор возвращает следующее число Фибоначчи. Используя цикл for и функцию enumerate, мы можем перебрать первые 10 чисел Фибоначчи из генератора.

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

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

Автор урока

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

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

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

  1. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  2. Протокол управления контекстом
  3. Команда %dhist — список посещенных каталогов
  4. Создание словарей в Python
  5. Применение промокода в Много лосося
  6. Счетчик в Python: most_common()
  7. Список переменных с %who
  8. Форматирование строк в Python
  9. Вложенные функции в Python
  10. Применение функций в Python
  11. Именованные срезы в Python
  12. Метод join() с набором
  13. Объединение словарей в Python
  14. Работа со случайными элементами
  15. Обновление шаблона base.html
  16. Работа с классами данных
  17. Векторизация в Python с NumPy.
  18. Хранение данных
  19. SciPy: широкий функционал для математических операций
  20. Подсчет элементов с помощью Counter
  21. Метод __imod__ для Python
  22. Преобразование списка в словарь через генератор
  23. Удаление первого элемента списка
  24. Параллельные вычисления в Python
  25. Сложение матриц в NumPy
  26. Python: цикл for и оператор присваивания
  27. Метод Enumerate() для списков
  28. Сортировка элементов с OrderedDict
  29. Метод join для объединения строк
  30. Глобальные переменные в Python
  31. Работа с комплексными числами
  32. Работа с парами ключ-значение
  33. Работа с атрибутом dict
  34. Работа с утверждениями в Python
  35. Открытие и запись файлов
  36. Применение функции к списку
  37. Многострочные комментарии в Python
  38. Ошибка NotImplemented в Python
  39. Группы исключений в Python
  40. Модуль array: создание и использование массивов
  41. Декораторы для регистрации функций
  42. Официальный канал Python в Telegram
  43. Создание списков в Python

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