Курс 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. Блок else в циклах.
  3. Поиск уникальных элементов строкой в Python
  4. Слияние словарей в Python 3.9
  5. Обработка ошибок в Python
  6. Удаление дубликатов из списка
  7. Разделение строки с регулярными выражениями
  8. Подсчет элементов в списке с Counter
  9. Метод join() для объединения элементов строки
  10. Модуль inspect: получение информации о объектах
  11. Метод join() для объединения элементов в строку.
  12. Открытие и редактирование скриптов Python
  13. Получение пути к текущему скрипту с помощью os
  14. Работа с итераторами в Python
  15. Работа с комбинациями в Python.
  16. Работа с NumPy
  17. Сортировка в Python
  18. Методы __repr__ и __str__ в Python
  19. JMESPath в Python
  20. Добавление элементов в список: append() vs extend()
  21. Solidity для DeFi Ethereum
  22. Проверка существования переменной с оператором :=
  23. Разделение строки с помощью re.split()
  24. Непрерывная проверка в Python
  25. Настройка вывода NumPy
  26. Избегайте ошибку FileNotFoundError
  27. Работа со строками в Python
  28. Таймер обратного отсчета
  29. Применение функции к списку
  30. Измерение времени выполнения кода
  31. Изменение элемента списка
  32. Работа с defaultdictами в Python
  33. Поиск с библиотекой Google
  34. Принципы программирования
  35. Основы Python за 14 дней
  36. Отладчик pdb: начало работы
  37. Работа с PosixPath() в Python
  38. Настройка Cron
  39. Создание списка дат
  40. Генераторы и сеты в Python
  41. Расчет времени выполнения программы
  42. Объединение словарей в Python
  43. Создание класса очереди
  44. Изменение IP-адреса в Python
  45. Удаление файлов с shutil.os.remove()
  46. Экспорт функций в Python
  47. Функции range() в Python
  48. Метод pos в Python
  49. Уникальность ключей в словаре

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