Курс 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. Переворот строки с использованием цикла
  2. Удаление дубликатов из списка
  3. Функции-генераторы в Python
  4. Счетчик ссылок в Python
  5. Шаблоны и наследование в Flask
  6. Модуль xkcd: загрузка комиксов
  7. Инверсия списка и строки
  8. Оператор Walrus в Python
  9. Экспорт данных в файл.
  10. Форматирование строк в Python
  11. Константы в модуле cmath
  12. Объединение строк с помощью метода join
  13. Взаимодействие с внешними процессами в Python
  14. Поиск уникальных элементов строкой в Python
  15. Объединение словарей в Python 3.5+
  16. Работа с часовыми поясами в Python
  17. Метод gt в Python
  18. Навыки Python: строки, типы данных
  19. Метод __getitem__ в Python
  20. Python и Юникод: работа с цифрами
  21. Построение графиков в Matplotlib
  22. Оператор += в Python
  23. Работа с deque из collections
  24. Форматирование строк в Python
  25. Манипуляция формой массива в Numpy
  26. Тестирование модели в PyTorch
  27. Поиск HTML-элементов с BeautifulSoup
  28. Обязательные аргументы в Python
  29. Особенности множеств в Python
  30. Частичное применение функций в Python
  31. Функция zip() в Python
  32. Хеширование паролей с солью
  33. Операторы сравнения в Python
  34. Основы Python
  35. Секреты Python
  36. Работа со случайными элементами
  37. Проверка индексов коллекции
  38. Установка и использование pyshorteners
  39. Копирование и вставка текста в Python
  40. Создание namedtuple списком полей
  41. Сравнение def и lambda-функций
  42. ROT13 Шифр Цезаря в Python
  43. Область видимости переменных
  44. Закрытие файла в Python
  45. Функции высшего порядка в Python
  46. Вызов функций по строке в Python.

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