Курс 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. Генераторы в Python
  2. Повторение и перенос строки
  3. Progress с библиотекой tqdm
  4. Работа с изменяемыми списками
  5. Модуль subprocess: запуск внешних команд
  6. Объявление переменных в Python
  7. Метод __iand__ для пользовательских классов
  8. Разбиение строки в Python
  9. Defaultdict в Python
  10. Навыки Python: строки, типы данных
  11. Создание списка через цикл
  12. Метод join() для объединения элементов строки
  13. Работа с часовыми поясами в Python
  14. Удаление эмодзи с помощью pandas
  15. Операции с матрицами в Python
  16. Получение текущей директории
  17. Запуск Python из интерпретатора
  18. Работа с timedelta в Python
  19. Создание класса очереди
  20. Поиск простых чисел
  21. Преобразование строк в числа в Python
  22. Обработка ошибок в Python
  23. Нахождение разницы между списками в Python
  24. Изменение объектов в Python
  25. Названия столбцов в Python таблицах
  26. Справка по импортированным модулям
  27. Прокачанный трейсинг ошибок
  28. Открытие и редактирование скриптов Python
  29. Работа со словарями с defaultdict из collections
  30. Операции с комплексными числами
  31. CSV строка разделение в Python
  32. Извлечение аудио из видео
  33. Разделение строк в Python
  34. JSON-esque в Python
  35. Оператор walrus в Python
  36. Удаление дубликатов из списка с помощью dict.fromkeys
  37. Декораторы в Python
  38. Вызов внешних программ в Python с помощью sh
  39. Метод split() в Python
  40. Работа с срезами в Python
  41. Bootle — простой веб-фреймворк
  42. Итерация по итерируемым объектам
  43. ChainMap.new_child() — добавление нового словаря
  44. Реверс строки в Python
  45. Работа со словарями в Python

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