Курс 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. Создание Telegram-бота на Python
  3. PEP-401: оператор
  4. Работа с массивами в Numpy
  5. Срез в Python
  6. Подсчет элементов с помощью Counter из collections
  7. Pillow: работа с изображениями
  8. Управление User-Agent в Python
  9. Замена текста в Python
  10. Преобразование типов данных в set comprehension
  11. Декораторы в Python
  12. Howdoi — получение ответов из терминала
  13. Библиотека wikipedia для Python
  14. Логирование с Logzero
  15. Метод rmatmul для обратного матричного умножения
  16. Курс Data Scientist в медицине
  17. discard() — удаление элемента из множества
  18. Обработка данных в Python
  19. Работа с контекстным менеджером Pool
  20. Расчет времени выполнения программы
  21. Операции с комплексными числами
  22. Синхронизация потоков с time.sleep()
  23. Курс по дообучению ChatGPT
  24. Разделение строки с регулярными выражениями
  25. Обход дочерних элементов BeautifulSoup
  26. Работа с Telegram API на Python
  27. Отслеживание прогресса с tqdm
  28. Функция zip() для объединения списков
  29. Нахождение максимального значения и его индекса в списке
  30. Вычисление натурального логарифма в NumPy
  31. Использование эмодзи в Python
  32. Область видимости переменных
  33. Курсы Яндекс Практикум
  34. Именованные срезы в Python
  35. Оператор in и not in в Python
  36. Работа с файлами в Python
  37. Метод join() с набором
  38. Логирование с Loguru
  39. Метод gt в Python
  40. Локальные переменные.
  41. inspect в Python: анализ кода
  42. Многоточие в Python
  43. Создание лямбда-функций
  44. Хэш-функции и метод цепочек
  45. Генератор списка с условием if
  46. Оператор in в Python
  47. Хранение переменных в Python.
  48. Официальный канал Python в Telegram

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