Курс 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. Beautiful Soup — извлечение данных из HTML
  2. Настройка вывода в Numpy
  3. Управление асинхронными задачами с помощью Semaphore
  4. Использование defaultdict в Python
  5. Переопределение метода __pow__
  6. Форматирование строк в Python
  7. Именованные аргументы в Python
  8. Замыкания в Python
  9. Логирование с Loguru
  10. Принципы Zen of Python
  11. Декораторы в Python
  12. Очистка списка от False, None, 0, «»
  13. Операции с массивами в NumPy
  14. Нахождение отличий в списках
  15. Аннотации типов в Python
  16. Магические методы в Python
  17. Преобразование списка в словарь через генератор
  18. Подсчет частотности элементов в Python
  19. Очистка данных в Python
  20. Метод enumerate() в Python
  21. Установка библиотек в Python
  22. Взаимодействие с внешними процессами в Python
  23. Виртуальные среды в Python
  24. Метод get для словаря
  25. Форматирование строк с помощью f-строк
  26. Работа с Path в Python
  27. Библиотека Emoji: использование смайлов в Python
  28. Обработка элементов в Python
  29. Обновление ключей в Python
  30. Работа с OpenCV
  31. Создание списка через цикл
  32. Solidity для DeFi Ethereum
  33. Группы исключений в Python
  34. Оператор @ для умножения матриц
  35. Измерение времени выполнения кода
  36. Библиотека itertools: объединение списков
  37. Функции range() в Python
  38. Генератор списка в Python
  39. Создание словарей с defaultdict
  40. Метод split() для разделения строк
  41. Progress с библиотекой tqdm
  42. Разрешение имен в Python
  43. Преобразование символов с помощью map

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