Курс 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. Метод join() для объединения строк
  2. Возврат нескольких значений
  3. Искажение имен в Python
  4. Метод ior для битовых операций
  5. Работа с файлами в Python
  6. Построение графиков в Matplotlib
  7. Метод radd для пользовательских чисел
  8. *args и **kwargs в Python
  9. Сохранение и загрузка модели в PyTorch
  10. Работа с enumerate()
  11. Упрощенный вывод данных в Python
  12. Многострочные комментарии в Python
  13. Удаление файлов и папок в Python
  14. Фильтрация элементов с помощью islice
  15. Представление бесконечности в Python
  16. Метод rpow в Python
  17. Генераторы в Python
  18. Python и Юникод: работа с цифрами
  19. Установка и использование модуля «howdoi»
  20. Декораторы в Python
  21. Namedtuple в Python
  22. Отрицательные индексы списков в Python
  23. Оптимизация памяти с помощью __slots__
  24. Описание скриптов в README
  25. Тип данных TypeVarTuple
  26. Работа с CSV файлами в Python
  27. Основные методы NumPy
  28. Модуль subprocess: запуск внешних команд
  29. Вложенные генераторы в Python
  30. Объединение словарей в Python
  31. Numpy: использование Ellipsis
  32. Создание вложенного генератора
  33. Открытие и запись файлов
  34. Работа с YAML в Python
  35. Загрузка постов Instagram
  36. Перебор элементов списка в Python
  37. Автоматизация скриптов на AWS Lightsail.
  38. Генераторы в Python
  39. Структурирование именованных констант
  40. Поиск кода
  41. Работа с байтовыми строками в Python
  42. Генератор надежных паролей
  43. Равенство и идентичность в Python
  44. Отслеживание прогресса с tqdm
  45. Расчет времени выполнения
  46. Доступ к локальным переменным

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