Курс 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. Форматирование чисел в Python
  3. Создание вложенного генератора
  4. Метод __complex__ в Python
  5. Оператор деления для класса Rational
  6. Создание таблиц в терминале с PrettyTable
  7. Итерация по итерируемым объектам
  8. Измерение времени выполнения кода
  9. Работа со строками в Python
  10. Управление виртуальными окружениями в Python
  11. Big O оптимизация
  12. Python: изменяемые и неизменяемые коллекции
  13. Создание тестовых данных с Faker
  14. Форматирование строк в Python
  15. Сохранение и загрузка модели в PyTorch
  16. Форматирование объектов с модулем pprint
  17. Умножение строк и списков
  18. Метод index() в Python
  19. Многострочные комментарии в Python
  20. Методы работы со списками
  21. Инициализация переменных
  22. Сравнение строк в Python
  23. %pinfo: получение информации об объекте
  24. Порядок операций в Python
  25. Асинхронное программирование с asyncio
  26. Принципы Zen Python
  27. Инвертирование словаря
  28. Каналы Senior: Python, Java, Frontend, SQL, C++
  29. Проверка класса объекта
  30. Присоединение элементов коллекции
  31. Тестирование с unittest
  32. Создание пользовательской коллекции в Python
  33. Проверка окончания строки с помощью str.endswith()
  34. Псевдонимы в Python
  35. Создание словарей в Python
  36. Транспонирование 2D-массива с помощью zip
  37. Создание файла с проверкой ошибки
  38. Бесконечная проверка в Python
  39. Использование html-скриптов в Jupyter Notebook
  40. Объединение списков в Python.
  41. Преобразование данных в Python
  42. Создание копии итератора
  43. Комментарии в Python
  44. Анализ текста на русском языке с помощью Pymystem3
  45. Метод __ixor__ для побитового исключающего ИЛИ
  46. Создание копии списка в Python
  47. Проверка наличия элемента в списке
  48. Гибкие функции Python

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