Курс 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. Форматирование объектов с модулем pprint
  2. Проверка вхождения подстроки
  3. Работа с набором данных CIFAR10 в PyTorch
  4. Работа с изображениями Pillow
  5. Pillow: работа с изображениями
  6. Список импортированных модулей в Python
  7. UserString в Python
  8. Вычисление фазы комплексного числа
  9. Именованные аргументы в Python
  10. Метод rxor для операции побитового исключающего «или»
  11. Декораторы в Python
  12. Перевод двоичного кода в целое число
  13. Функция map() и ленивая оценка
  14. Итерации в Python
  15. Метод ipow для возведения в степень
  16. Функция zip() в Python
  17. Namedtuple в Python
  18. Анонимные функции Lambda
  19. Метод remove() для удаления элемента из списка
  20. Метод ifloordiv для пользовательских классов
  21. Многострочные комментарии в Python
  22. Избегайте ошибку FileNotFoundError
  23. Преобразование PowerPoint в PDF.
  24. Извлечение данных из JSON
  25. Метод split() для разделения строк
  26. Замена текста с re.sub()
  27. Python Enumerate
  28. Работа с географическими данными в Python
  29. Работа с итераторами через срезы
  30. Символ подчеркивания в Python
  31. Просмотр атрибутов и методов класса
  32. Пропуск начальных строк с помощью dropwhile()
  33. Преобразование range в итератор
  34. Руководство по библиотеке pydantic
  35. Управление виртуальными средами в Python
  36. Комментарии в Python
  37. Работа с YAML в Python
  38. Удаление элемента по индексу
  39. Проверка окончания строки с помощью str.endswith()
  40. PUT запрос для обновления данных
  41. Создание треугольника Паскаля
  42. Удаление элемента из списка
  43. Метод gt в Python
  44. Модуль os: работа с файлами и папками
  45. Использование *args
  46. Разделение строк в Python
  47. Работа с аргументами командной строки

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