Курс 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. Руководство по использованию Colorama
  2. Подсчет элементов с помощью Counter
  3. Атрибуты класса и экземпляра
  4. Библиотека sh: удобные команды терминала
  5. Список импортированных модулей в Python
  6. Python: Splat-оператор и splatty-splat
  7. Python Метод sleep() времени
  8. Поиск уникальных и повторяющихся элементов
  9. Импорт объектов из модулей
  10. Оператор Walrus в Python
  11. Дефолтные параметры в Python
  12. Обработка исключений в Python
  13. Форматирование даты с strftime()
  14. Повторение и перенос строки
  15. Функция print() — вывод информации
  16. Работа со строками в Python.
  17. Избегание циклических зависимостей классов в Python
  18. Сортировка элементов с OrderedDict
  19. Beautiful Soup — извлечение данных из HTML
  20. Переворот строки с использованием цикла
  21. Работа с базами данных SQLite
  22. Метод split() в Python
  23. Умножение строк и списков
  24. Работа с кортежами в Python
  25. Изменение объектов в Python
  26. Символ подчеркивания в Python
  27. Сортировка HTML-элементов
  28. Создание новых списков в Python
  29. Пересечение списков с использованием множеств
  30. Метод add для класса Vector
  31. Инвертирование словаря
  32. Функция reduce() из модуля functools
  33. Генераторы в Python
  34. Аргумент по умолчанию
  35. Бинарный поиск
  36. Создание лямбда-функций
  37. Операции с числами в Python
  38. Базовые объекты Python
  39. Итерация по коллекции в Python
  40. Кортеж в Python: создание и использование
  41. Модуль functools в Python
  42. Функция divmod() в Python
  43. Оператор walrus в Python
  44. Создание итератора
  45. Оператор объединения словарей
  46. Создание словарей в Python
  47. Функции высшего порядка в Python

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