Курс 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. Проверка класса объекта
  2. Работа с комбинациями в Python.
  3. Преобразование строк в числа с плавающей запятой
  4. Инверсия списка и строки в Python
  5. Анонимные функции в Python
  6. Преобразование Word в PDF с Spire.Doc
  7. Работа с CSV файлами в Python
  8. Метод Self в Python
  9. Символ подчеркивания в Python
  10. split() — разделение строки
  11. Перетасовка списков в Python
  12. Операции с числами в Python
  13. Объединение словарей в Python
  14. Измерение времени выполнения кода в Python
  15. Оператор is в Python
  16. Освоение Python
  17. Создание таблиц в терминале с PrettyTable
  18. Обработка ошибок ввода данных
  19. Сортировка слиянием
  20. Создание Radio кнопок в tkinter
  21. Передача словаря через **kwargs
  22. Numpy: объединение массивов
  23. Объединение словарей в Python
  24. Распаковка элементов массива
  25. F-строки в Python
  26. Работа с процессами в Python
  27. Работа с комплексными числами в Python
  28. Разбиение текста в Python
  29. Методы работы со строками в Python
  30. Извлечение аудио из видео
  31. Встраивание HTML в Jupyter Notebook
  32. Логирование с Logzero
  33. Работа с очередями в Python
  34. PUT запрос для обновления данных
  35. Оператор Walrus в Python
  36. Удаление ключа из словаря в Python
  37. Регистрация на хакатоне
  38. Декораторы в Python
  39. Удаление дубликатов из списка с помощью dict.fromkeys
  40. Вывод символов строки в Python
  41. Python Метод sleep() времени

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