Курс 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. Numpy: использование Ellipsis
  2. Функция sleep() в Python
  3. Основы слова
  4. Игра «Угадывание чисел»
  5. Сравнение неупорядоченных списков
  6. Python union() функция — объединение множеств
  7. Pretty-printing JSON в Python
  8. Создание словарей в Python
  9. Генераторы списков
  10. Перегрузка операторов в Python
  11. Область видимости переменных
  12. Генератор чисел Фибоначчи
  13. Модуль os в Python: работа с файлами
  14. Создание итерируемых объектов
  15. Разрешение имен в Python
  16. Правила именования переменных
  17. Оператор in и not in в Python
  18. Установка и использование howdoi
  19. Цикл while в Python
  20. Лямбда-функции для min/max
  21. Частичное применение функций в Python
  22. Python enumerate() функции
  23. Эффективная конкатенация строк в Python
  24. Копирование в Python
  25. Сортировка HTML по CSS-селектору
  26. Применение функции map() в Python
  27. Замыкания в Python
  28. Работа с эмодзи в Python
  29. Измерение времени выполнения кода
  30. Метод hash в Python
  31. Метод ne для сравнения объектов
  32. Переопределение метода __or__()
  33. Вычисление времени выполнения
  34. Оператор in в Python
  35. Форматирование строк в Python
  36. Метод get для словарей
  37. Управление импортом в Python
  38. Функция print() — вывод информации
  39. Регулярные выражения в Python
  40. Разделение строки на подстроки в Python
  41. Расширение операции побитового «и» в Python
  42. Оптимизация создания строк
  43. Просмотр внешних файлов в %pycat
  44. Работа с collections в Python
  45. Использование двоеточия в Python

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