Курс 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 groupby() из itertools: работа с повторяющимися элементами
  2. Экспорт данных с помощью writefile
  3. Счетчик ссылок в Python
  4. Переопределение унарных операторов
  5. Извлечение статей с newspaper3k
  6. Округление дробей в Python
  7. Оператор умножения для вектора
  8. Подсказки типов в Python
  9. Удаление элементов из списка в Python
  10. Проекты на Python
  11. Обработка исключений в Python
  12. Оператор in для Python
  13. Работа с контекстными менеджерами
  14. Работа с срезами в Numpy
  15. Хеши в Python
  16. Создание графиков в терминале
  17. Глобальные переменные в Python
  18. Преобразование строки в число
  19. Управление User-Agent в Python
  20. Обмен данными с asyncio.Queue
  21. Генераторы в Python
  22. Нарезка списков в Python
  23. Создание и инициализация объектов
  24. Проверка типов с использованием isinstance
  25. Управление фоновыми задачами в Python
  26. Numpy: использование Ellipsis
  27. PEP-401: оператор
  28. Форматирование строк с f-строками
  29. Участие в сообществе @selectel
  30. Декоратор Ajax required
  31. Сортировка элементов с OrderedDict
  32. Логирование с Logzero
  33. Pretty-printing JSON в Python
  34. Подсчет часто встречающихся элементов
  35. Проблемы с именами переменных
  36. Вызов функций по строке в Python.
  37. Отправка POST запроса на сервер.
  38. Удаление элемента по индексу
  39. Основные операции с Numpy
  40. Магические методы в Python
  41. Удаление символа из строки
  42. Оптимизация памяти с __slots__
  43. Сравнение строк в Python
  44. Функция divmod() в Python
  45. Строки в Python: апострофы и кавычки

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