Курс 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. Вычисление натуральных логарифмов в NumPy
  2. Генераторные выражения и islice.
  3. Python: динамическая типизация и проверка типов
  4. Экспорт функций в Python
  5. Преобразование символов в нижний регистр
  6. Экспорт данных в файл.
  7. Monkey Patching в Python
  8. Повторение элементов в Python
  9. Модуль inspect: получение информации о объектах
  10. Оператор «not» в Python
  11. Разбиение текста в Python
  12. Генератор чисел Фибоначчи
  13. Оптимизация параметров в Python
  14. Участие в LP стейкинге Waves
  15. Описание скриптов в README
  16. Печать месячного календаря
  17. Flask — веб-фреймворк Python
  18. Оптимизация поиска в словарях
  19. Форматирование строк в Python
  20. Подсчет количества элементов в списке
  21. Обмен данными с asyncio.Queue
  22. Работа с каталогами в Python
  23. Преобразование букв в нижний регистр
  24. Сортировка HTML-элементов
  25. Создание итератора
  26. Метод __ilshift__ для битового сдвига влево
  27. Работа с эмодзи в Python
  28. Сортировка списка по индексам
  29. Метод __call__ в Python
  30. Структуры данных в Python
  31. Изучение объектов с помощью dir()
  32. Combobox в Tkinter
  33. Оператор «not» в Python
  34. Функция enumerate() — Python
  35. Работа с файлами в Python
  36. Применение команды break
  37. Порядок и длина множеств в Python
  38. Переворот списка в Python
  39. Копирование файлов с shutil()
  40. Подсчет элементов в Python
  41. Обработка исключений в Python
  42. Преобразование в float
  43. Python 3.12: переиспользование кавычек
  44. Вызов функций по строке в Python.
  45. Визуализация пропусков данных
  46. Работа с CSV в Python
  47. Обход элементов в Python

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