Курс 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. Работа с рекламными данными в Pandas
  3. Работа с deque из collections
  4. Функция zip() в Python
  5. Удаление ресурса в Python
  6. Работа с модулем random
  7. Применение команды break
  8. Оптимизация памяти с помощью __slots__
  9. Управление экспортом элементов
  10. Запуск асинхронной корутины
  11. Декоратор total_ordering для класса Point
  12. Операции с числами в Python
  13. Создание лямбда-функций
  14. Создание объекта времени
  15. Кортеж в Python: создание и использование
  16. Генераторы списков
  17. Фильтрация элементов с помощью islice
  18. Подсчет элементов в Python
  19. Проверка элемента в множестве.
  20. Метод Self в Python
  21. Модуль sys: основы
  22. Проверка подстроки в строке с помощью in
  23. Создание коллекций из генератора
  24. Поиск индекса элемента в списке
  25. Итераторы в Python
  26. Обработка StopIteration в Python
  27. Работа с кортежами в Python
  28. Создание итератора
  29. Сравнение неупорядоченных списков
  30. Улучшенные подсказки для импорта в Python 3.12
  31. Библиотека wikipedia для Python
  32. Функции в одну строку
  33. Удаление ключей из словаря
  34. Основы Python
  35. Игра «Виселица» на Python
  36. Работа с файлами в Python
  37. Визуализация пропусков данных
  38. Переопределение метода __eq__
  39. Оператор @ для умножения матриц
  40. Использование эмодзи в Python
  41. Работа с SQLite в Python
  42. Переменные в Python: сокращение гласных
  43. Создание и операции с дробями
  44. Структурирование именованных констант
  45. TypedDict для kwargs в Python 3.12

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