Курс 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. Методы HTTP запросов в Flask
  2. Python: изменяемые и неизменяемые коллекции
  3. Метод pos в Python
  4. Операции с матрицами в Python
  5. Транспонирование 2D-массива с помощью zip
  6. GitHub в Telegram: подписка на уведомления
  7. Оператор «not» в Python
  8. Автоматизация скриптов на AWS Lightsail.
  9. Тернарный оператор в Python
  10. Обновление множества в Python
  11. Настройка шрифта и цвета в Tkinter
  12. Создание коллекций из генератора
  13. Глобальные переменные в Python
  14. Атрибуты класса и экземпляра в Python
  15. Возврат нескольких значений из функции
  16. Установка максимального количества цифр
  17. Разница между датами
  18. Проверка ввода с помощью isdigit
  19. Изменение списка срезами
  20. Декораторы в Python
  21. Создание новых списков
  22. Определение наиболее частого элемента с помощью collections.Counter
  23. Извлечение чисел из текста
  24. Сравнение объектов в Python
  25. Работа с комплексными числами
  26. Порядок операций в Python
  27. Поиск файлов по шаблону
  28. Подсчет элементов в Python
  29. Удаление специальных символов
  30. Python UserString — создание подклассов строк
  31. Python: Фильтрация списков с помощью filter()
  32. Атрибуты класса и экземпляра
  33. Функция enumerate() в Python
  34. Работа с парами ключ-значение
  35. Создание новых функций с помощью functools.partial
  36. Функции map, filter и reduce
  37. Метод get для словарей
  38. Принципы SRP и OCP
  39. Применение функции к списку
  40. Использование подчеркивания в REPL
  41. Модуль math: константы π и e
  42. Создание матрицы в Python
  43. Параллельные вычисления в Python
  44. Метод join() для объединения элементов строки
  45. Декоратор для группы пользователей в Django

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