Курс 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. Оператор «not» в Python
  2. Функция format() в Python
  3. Распаковка элементов массива
  4. Переопределение унарных операторов
  5. Ключевое слово global в Python
  6. Создание словаря в Python
  7. Добавление вложенных списков
  8. Декораторы в Python
  9. Особенности ключей словаря в Python
  10. Создание генераторов в Python
  11. Возврат нескольких значений из функции
  12. Именованные кортежи в Python
  13. Форматирование вывода списков
  14. Оболочка Python
  15. Проверка подстроки в строке
  16. Декораторы в Python
  17. Разделение строки с помощью split()
  18. Инициализация переменных
  19. Распаковка аргументов в Python
  20. Dict Comprehension в Python
  21. Преобразование списка в словарь через генератор
  22. Python: цикл for и оператор присваивания
  23. Модуль xkcd: добавление юмора в Python
  24. Сортировка данных с лямбда-функциями
  25. Преобразование данных в Python
  26. Colorama: окрашивание текста в Python
  27. Списковое включение в Python
  28. Декоратор total_ordering для сравнения объектов
  29. Получение текущей даты и времени с помощью datetime
  30. Функция product() в Python
  31. Преобразование текста в речь с Python
  32. Удаление и повторная вставка ключа в OrderedDict
  33. Работа с множествами в Python
  34. Объединение Python и Shell
  35. Преобразование в float
  36. Объединение кортежей в Python
  37. Оператор объединения словарей
  38. Подсказки типов в Python
  39. Работа с timedelta в Python
  40. Хранение данных с помощью dataclasses
  41. Псевдонимы в Python
  42. Расчет времени выполнения программы
  43. Поиск всех индексов подстроки
  44. Оператор «not» в Python
  45. Выбор редактора кода.

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