Курс 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. Управление мышью и клавиатурой с Pyautogui
  3. Вставка переменных в шаблоны Flask
  4. Работа со строками в Python.
  5. Методы работы со строками в Python
  6. Функция reduce() в Python
  7. Проверка типа данных
  8. Необязательные аргументы в Python
  9. Декораторы в Python
  10. Порядок операций в Python
  11. Вычисление фазы комплексного числа
  12. Объединение списков с использованием itertools.chain
  13. Игра «Угадывание чисел»
  14. Обрезка изображения с Pillow
  15. Преобразование вложенного списка
  16. Импорт объектов из модулей
  17. Библиотека schedule: планировщик задач
  18. Bootle — простой веб-фреймворк
  19. Поиск кода
  20. Проектирование Singleton с метаклассом
  21. Работа с zip()
  22. Работа с кортежами в Python
  23. Метод radd для пользовательских чисел
  24. Оператор in в Python
  25. Создание функций с произвольным количеством аргументов
  26. Создание спинбокса в tkinter
  27. Метод split() в Python
  28. Функция zip() в Python
  29. Курсы Яндекс Практикум
  30. Оператор объединения словарей
  31. Разделение функций на этапы
  32. Метод __getitem__ в Python
  33. Работа с набором данных CIFAR10 в PyTorch
  34. Переменные в Python
  35. Конкатенация строк в Python
  36. Экспорт данных с помощью writefile
  37. Операторы объединения в Python 3.9
  38. Нахождение максимального значения и его индекса в списке
  39. Использование функции enumerate()
  40. Использование эмодзи в Python
  41. Декораторы в Python
  42. Счетчик в Python: most_common()
  43. Передача словаря через **kwargs
  44. Глобальные переменные в Python
  45. Переопределение оператора % для объектов

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