Курс Python → Генераторы в Python

Генератор в Python представляет собой специальный тип итератора, который отличается от обычных итераторов тем, что использует ленивые вычисления. Это означает, что значения генерируются только в момент обращения к ним, а не заранее. Такой подход позволяет экономить память и улучшить производительность программы.

Классическая концепция генераторов в информатике была заимствована из языка Haskell и стала популярной во многих других языках программирования, включая Python. Основная идея генераторов заключается в том, что они следуют принципу «вызов-по-необходимости», то есть значения генерируются только при необходимости и не занимают лишнюю память.

Использование генераторов в Python позволяет создавать эффективные итерируемые объекты, которые обрабатывают данные по мере необходимости. Вместо того чтобы сразу вычислять и сохранять все значения, генератор «генерирует» их по мере выполнения итераций. Это особенно полезно при работе с большими объемами данных или при необходимости оптимизировать использование памяти.

def square_numbers(n):
    for i in range(n):
        yield i ** 2

# Пример использования генератора
numbers = square_numbers(5)
for num in numbers:
    print(num)

В приведенном примере показано создание генератора, который генерирует квадраты чисел от 0 до n. При обращении к генератору значение не вычисляется заранее, а генерируется только при выполнении итерации. Это позволяет эффективно использовать память и улучшить производительность программы.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Преобразование типов данных в set comprehension
  2. Переопределение метода __rshift__
  3. Открытие, чтение и закрытие файла
  4. Поиск HTML-элементов с BeautifulSoup
  5. Подписка на SelectelNews в Twitter
  6. Множественное присваивание в Python
  7. Ускорение выполнения кода в Python
  8. Работа с файлами в Python
  9. Отладка регулярных выражений в Python
  10. Декораторы с аргументами
  11. Параллельные вычисления в Python
  12. Установка и использование pyshorteners
  13. Управление импортом в Python
  14. Распаковка значений в Python
  15. Преобразование в float
  16. Переменные в Python
  17. Анализ кода — Python
  18. Работа с Enum в Python3.
  19. Область видимости переменных
  20. Сортировка в Python
  21. Хранение данных
  22. Enum в Python
  23. Обработка аргументов Python
  24. Условные выражения в Python
  25. Удаление пробелов методом translate()
  26. Рекурсия для обращения строки
  27. Установка random seed в Python
  28. Переопределение метода __or__()
  29. Декораторы в Python
  30. Настройка нарезки списков
  31. Использование подчеркивания в REPL
  32. Поиск индекса элемента
  33. Бинарный поиск
  34. Профилирование с cProfile
  35. Объединение списков с использованием itertools.chain
  36. Форматирование строк в Python
  37. Шаблоны Flask: условия и циклы
  38. Оператор break в Python
  39. Работа с *args и **kwargs в Python
  40. Создание вкладок с TKinter
  41. Поиск индексов подстроки
  42. Оператор «моржа» (Walrus Operator)

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