Курс 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. Наиболее частотные элементы с помощью Counter
  2. Генератор бросков кубиков
  3. Оператор (*) в Python
  4. Оператор «or» в Python
  5. Создание генераторов в Python
  6. Установка и использование pyshorteners
  7. Метод __irshift__ для Python
  8. Рациональные числа в Python
  9. Выключение компьютера с помощью Python
  10. Лямбда-функции в цикле
  11. Виртуальное окружение Python
  12. Метод Event.wait() в Python
  13. Форматирование строк в Python
  14. Функции классификации комплексных чисел
  15. Анонимные функции в Python
  16. Сравнение строк в Python
  17. Сравнение объектов в Python
  18. Функции all() и any() в Python
  19. Преобразование PowerPoint в PDF.
  20. Метод splitlines() для разделения строк
  21. Объединение строк с помощью метода join
  22. Оператор in для проверки наличия элемента
  23. Функции range() в Python
  24. Добавление вложенных списков
  25. Срезы в Python
  26. Получение имени функции с помощью inspect
  27. Явный импорт переменных
  28. Работа с датами в Python
  29. Частичное совпадение ввода
  30. Работа с getopt
  31. Методы classmethod и staticmethod
  32. Обход дочерних элементов BeautifulSoup
  33. Генераторы в Python
  34. Игра «Виселица» на Python
  35. Перемещение и удаление файлов в Python
  36. Создание таблиц в Python с PrettyTable
  37. Итераторы в Python
  38. Работа с временем в Python
  39. Сравнение def и lambda в Python
  40. Эффективная конкатенация строк с использованием join()
  41. Генерация QR-кодов с библиотекой qrcode
  42. Названия столбцов в Python таблицах
  43. Работа с Enum в Python3.
  44. Настройка нарезки списков

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