Курс 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. PrettyTable: создание таблицы
  2. Подсчет элементов с помощью Counter из collections
  3. Символ подчеркивания в Python
  4. Работа с файлами в Python
  5. Преобразование списка в словарь через генератор
  6. Работа с коллекциями Python
  7. Декоратор total_ordering для класса Point
  8. Работа с модулем glob в Python
  9. Работа с модулем cmath
  10. Конкатенация строк с методом join()
  11. Объединение словарей в Python 3.5+
  12. Отступы в Python
  13. Вложенные генераторы в Python
  14. Получение списка файлов в директории с использованием os
  15. Разбиение текста в Python
  16. Метод Self в Python
  17. Освобождение памяти в Python
  18. Аннотации типов в Python
  19. Измерение времени выполнения кода
  20. Замена текста в Python
  21. Работа с Event() в threading
  22. Метод lt для сортировки объектов
  23. Перезагрузка оператора в Python
  24. Обработка элементов в Python
  25. Извлечение новостей с помощью newspaper3k
  26. Срез в Python
  27. Преобразование генераторов в циклы
  28. Обработка ошибок в JSON данных
  29. Concrete Paths в Python
  30. Дефолтные параметры в Python
  31. Округление в Python
  32. PATCH-запрос с библиотекой requests
  33. Асинхронное программирование с asyncio
  34. Класс Counter() для подсчета элементов
  35. Получение комбинаций в Python
  36. Списки в Python: основы
  37. Перевернуть список в Python
  38. Описание скриптов в README
  39. Установка пакета в Python
  40. Работа с часовыми поясами в Python
  41. Философия Python
  42. Управление контекстом выполнения
  43. Создание GUI на Tkinter

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