Курс 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. Философия Python
  2. Сравнение объектов в Python
  3. Символ подчеркивания в Python
  4. Официальный канал Python в Telegram
  5. Поток данных в Python
  6. Генераторы словарей и множеств
  7. Вычисление натурального логарифма в NumPy
  8. Импортирование в Python
  9. Удаление falsy-значений из списка с помощью filter
  10. Роль запятой в Python
  11. Генераторы списков
  12. Основы Python
  13. Сравнение def и lambda функций в Python
  14. Dict Comprehension в Python
  15. Операторы объединения в Python 3.9
  16. Создание словарей в Python
  17. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  18. Хеши в Python
  19. Управление импортом в Python
  20. Основы работы с os
  21. Оператор is в Python
  22. Правила именования переменных
  23. Удаление эмодзи с помощью pandas
  24. Оператор assert в Python
  25. Функции map() и reduce() в Python
  26. Просмотр файла в Jupyter Noteboo
  27. Разделение функций на этапы
  28. Метод rpow в Python
  29. Работа с enumerate()
  30. Применение функции map() в Python
  31. Python Enumerate
  32. Оптимизация интернирования строк
  33. Переименование файлов в Python
  34. Метод setdefault() в Python
  35. Декоратор total_ordering для сравнения объектов
  36. Работа с переменными в Python
  37. Проблема сравнения словарей
  38. Класс UserDict: дополнительная функциональность
  39. Применение функции map() с лямбда-функциями
  40. Фильтрация входных данных в Python
  41. Обход словаря в Python
  42. Работа с getopt
  43. Метод rename() для переименования файлов и каталогов
  44. Работа с изображениями PIL
  45. Тестирование функции сложения
  46. Библиотека wikipedia для Python
  47. Список и кортеж в Python

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