Курс 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. Создание даты из строки ISO
  3. Использование подчеркивания в REPL
  4. Дефолтные параметры в Python
  5. Цикл for в Python
  6. Правила именования переменных
  7. Удаление дубликатов из списка с помощью dict.fromkeys
  8. Работа с YAML в Python
  9. Операции с массивами в NumPy
  10. Функция zip() — объединение последовательностей
  11. Метод clear для коллекций
  12. Открытие и редактирование скриптов Python
  13. Переменная Шредингера
  14. Оператор continue в Python
  15. Создание именованных кортежей в Python
  16. Получение атрибутов и методов класса
  17. Виртуальные среды в Python
  18. Изменение объектов в Python
  19. Преобразование кортежа в словарь.
  20. Поиск наиболее частого элемента списке
  21. Переопределение метода __rshift__
  22. Работа со списками
  23. Работа с комплексными числами
  24. Поиск повторов в списке
  25. Работа с множествами в Python
  26. Комплексные числа в Python
  27. Измерение времени выполнения кода
  28. Модуль future Python
  29. Профилирование с Pandas
  30. Сокращение ссылок с pyshorteners
  31. Генераторы в Python
  32. Комментарии в Python
  33. Работа с каталогами в Python
  34. Объединение словарей в Python
  35. Сортировка элементов с OrderedDict
  36. Замена текста с re.sub()
  37. Срезы в Numpy
  38. Конвертация коллекций в Python
  39. Тестирование функции сложения
  40. Дизассемблирование Python кода
  41. Аннотации типов в Python
  42. Метод classmethod
  43. Многострочные комментарии в Python
  44. Равенство и идентичность в Python

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