Курс 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. Удаление falsy-значений из списка с помощью filter
  2. Работа с enumerate()
  3. Операции с кортежами
  4. Работа с срезами в Python
  5. Функция zip() в Python
  6. Сравнение def и lambda-функций
  7. Определение относительного пути
  8. Блок else в циклах.
  9. Документация функции help() в Python
  10. Генераторы списков
  11. Форматирование строк в Python
  12. Измерение времени выполнения кода
  13. Работа с множествами в Python
  14. Создание лямбда-функций
  15. Протокол управления контекстом
  16. Поиск кода
  17. JSON-esque в Python
  18. Определение объема памяти объекта
  19. Управление User-Agent в Python
  20. Удаление элемента по индексу
  21. Математические функции в Python
  22. Функции с дополнением
  23. Передача неизвестных аргументов в Python.
  24. Реверс строки и списка в Python.
  25. Создание итерируемых объектов
  26. Concrete Paths — метод .with_suffix()
  27. Лимиты на ресурсы Python
  28. Python Метод Union Множеств
  29. Перебор элементов списка в Python
  30. Создание пустых функций и классов в Python
  31. Преобразование чисел в восьмеричную строку
  32. Структурирование именованных констант
  33. Работа с CSV файлами в Python
  34. Сумма элементов списка
  35. Подписка на Kaspersky Team
  36. Переопределение метода __rshift__
  37. PEP-401: оператор
  38. Работа с итераторами в Python
  39. Список переменных с %who
  40. Векторизация в Python с NumPy.
  41. Использование модуля math
  42. Использование эмодзи в Python
  43. Получение текущей даты в Python
  44. Создание словарей в Python
  45. Объединение строк с помощью метода join
  46. Вакансии в Nebius

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