Курс 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. Оператор обр. импликации
  2. Перегрузка операторов в Python
  3. Работа с комплексными числами
  4. Работа со словарями
  5. Модуль itertools: эффективная работа с итераторами
  6. Метод __float__ в Python
  7. JSON-esque в Python
  8. Возврат нескольких значений
  9. Метод init в Python
  10. PATCH-запрос с библиотекой requests
  11. Однострочники Python
  12. Переопределение метода divmod
  13. Форматирование строк в Python
  14. Функции классификации комплексных чисел
  15. Склеивание строк без циклов
  16. Настройка вывода NumPy
  17. Итерация по копии коллекции
  18. Частичное совпадение ввода
  19. Преобразование текста в нижний регистр
  20. Функция divmod() в Python
  21. Работа с timedelta
  22. Лямбда-функции в Python
  23. Работа с итераторами в Python
  24. Принцип одной функции
  25. Чтение бинарного файла в Python.
  26. Работа с очередями в Python
  27. Создание и обучение модели с Keras
  28. Создание коллекций из выражения-генератора
  29. Вывод с переменной через запятую
  30. Работа с эмодзи в Python
  31. Структура данных словарь в Python
  32. Явный импорт в Python
  33. Псевдонимы в Python
  34. Контроль точности вывода чисел
  35. Оператор объединения словарей
  36. Работа со словарями Python
  37. Правила именования переменных
  38. Управление асинхронными задачами на Python.
  39. Профилирование кода
  40. Работа с defaultdictами в Python
  41. Идентификатор объекта в Python

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