Курс 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. globals и locals
  2. Извлечение новостей с помощью newspaper3k
  3. Хеширование паролей с использованием salt
  4. Оператор морж в Python 3.8
  5. Оператор zip в Python
  6. Установка максимального количества цифр
  7. Удаление дубликатов из списка с помощью dict.fromkeys
  8. Удаление элементов из списка в Python.
  9. Python 3.12: Псевдонимы типов
  10. Метод init в Python
  11. Инициализация структур данных
  12. Отрицательные индексы списков в Python
  13. Измерение времени выполнения кода в Python
  14. Python groupby() из itertools: работа с повторяющимися элементами
  15. Очистка списка от False, None, 0, «»
  16. Динамическая типизация в Python
  17. Работа с timedelta в Python
  18. Уникальные значения из списка
  19. Итераторы с потерямиZIP
  20. Удаление дубликатов из списка
  21. Исключение NotImplementedError
  22. Обработка исключений с блоком else
  23. Регистрация на хакатоне
  24. Проблема сравнения словарей
  25. Функция enumerate() — Python
  26. Библиотека Emoji: использование смайлов в Python
  27. Создание GUI на Tkinter
  28. Библиотека sh: использование команд bash в Python
  29. Вычисление фазы комплексного числа
  30. Обработка ошибок в Python
  31. Определение размера папок в Python
  32. Уникальность ключей в словаре
  33. Моржовый оператор в Python 3.8
  34. Бесконечная проверка в Python
  35. CLI-инструмент howdoi
  36. Форматирование данных с помощью pprint
  37. Получение списка кортежей из словаря
  38. Поиск с библиотекой Google
  39. Срезы в Python
  40. Метод __iand__ для пользовательских классов
  41. *args и **kwargs в Python
  42. Функции map, filter, reduce
  43. Метод setitem в Python
  44. Сравнение def и lambda в Python

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