Курс 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. Получение идентификатора объекта в памяти
  5. Python Поверхностное Копирование
  6. Оптимизация памяти с __slots__
  7. Синхронизация доступа к ресурсам
  8. Фильтрация элементов с помощью islice
  9. Работа с модулем glob в Python
  10. Область видимости переменных
  11. Использование type hints
  12. Установка виртуального окружения Python
  13. Мониторинг памяти с Pympler
  14. Запуск внешнего кода в Jupyter
  15. Сортировка элементов в Python
  16. Dict Comprehension в Python
  17. Переопределение метода __or__()
  18. Нахождение отличий в списках
  19. Поиск подстроки в строке
  20. Аннотации типов в Python
  21. Операции с датами в Python
  22. Распаковка аргументов в Python
  23. Создание и использование модулей в Python
  24. Работа с CSV файлами в Python
  25. Вычисление натуральных логарифмов в NumPy
  26. Python 3.12: Псевдонимы типов
  27. Python: Splat-оператор и splatty-splat
  28. Оператор * в Python
  29. Структуры данных в Python
  30. Метод matmul для умножения матриц
  31. Работа с байтовыми строками в Python
  32. Работа с комплексными числами в Python
  33. Пропуск строк в файле с itertools
  34. Конкатенация строк в Python
  35. Оператор «or» в Python
  36. Добавление кнопки в tkinter
  37. Метод join() для объединения строк
  38. Работа со строками в Python
  39. Динамические маршруты во Flask
  40. Работа с изображениями PIL
  41. Переворот списка в Python
  42. Создание итератора
  43. Метод __imod__ для Python

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