Курс 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. Форматирование кода на Python
  2. Создание графиков в терминале
  3. Работа с набором данных CIFAR10 в PyTorch
  4. Преобразование списков в словарь
  5. Обработка исключений в Python
  6. Ускоренный импорт библиотек
  7. Работа с файлами в Python
  8. Оценка выражений генератора в Python
  9. Измерение времени выполнения кода
  10. Python enumerate() функции
  11. Инициализация объекта
  12. Декораторы в Python
  13. Генерация тестовых данных с factory_boy
  14. Использование подчеркивания в REPL
  15. Поиск всех индексов подстроки
  16. Группировка элементов Python
  17. Применение функций в Python
  18. Метод split() для разделения строк
  19. Работа с IP-адресами в Python
  20. Объединение списков с помощью zip
  21. Оператор is в Python
  22. Математические функции в Python
  23. Поиск наиболее частого элемента списке
  24. Удаление элементов из списка
  25. Нахождение максимального значения и его индекса в списке
  26. Модуль math: основные функции
  27. Генераторы списков в Python
  28. Расчет времени выполнения
  29. Курс Data Scientist в медицине
  30. Округление банкира в Python
  31. Получение значений из словарей
  32. Метод lt для сортировки объектов
  33. Перегрузка операторов в Python
  34. Colorama: окрашивание текста в Python
  35. Протокол управления контекстом
  36. Метод hash в Python
  37. Просмотр внешних файлов в %pycat
  38. Анонимные функции Lambda
  39. Строки в Python: апострофы и кавычки
  40. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  41. Игра «Камень, ножницы, бумага» — Python
  42. Работа с CSV файлами в Python
  43. Расчет времени выполнения кода
  44. Итерация по коллекции в Python
  45. Анонимные функции в Python
  46. Декораторы в Python

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