Курс 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. Методы list в Python
  4. Сортировка списка по индексам
  5. Непрерывная проверка в Python
  6. Обновление и получение данных в SQLite
  7. Метод сравнения объектов в Python
  8. Подсчет элементов в Python
  9. Сравнение объектов в Python
  10. Работа с функцией next() в Python
  11. Удаление элементов из списка в Python.
  12. Работа с JSON в Python
  13. Нарезка списков в Python
  14. Очистка данных с помощью pandas
  15. Обработка исключений с блоком else
  16. Работа с модулем bisect
  17. Python UserString — создание подклассов строк
  18. Генератор бросков кубиков
  19. Декораторы в Python
  20. Игра «Камень, ножницы, бумага» — Python
  21. Оператор «is not» в Python
  22. globals и locals
  23. Основные функции и модули Python
  24. Замыкания в Python
  25. Реализация операции -= для пользовательского класса
  26. Метод get для словарей
  27. Цикл for в Python
  28. Ускорение выполнения кода в Python
  29. Параллельные вычисления в Python
  30. Извлечение данных из JSON
  31. Отрицательные индексы списков
  32. Атрибуты класса и экземпляра
  33. Оператор is в Python
  34. Основы работы со строками в Python
  35. Преобразование Excel в PDF с Spire.XLS
  36. Работа со строками в Python
  37. Переменная с нижним подчеркиванием
  38. Многопоточность в Python
  39. Избегайте ошибку FileNotFoundError
  40. Работа с байтовыми строками в Python
  41. Метод setdefault() в Python
  42. Модуль antigravity: генерация координат
  43. Объединение словарей в Python
  44. Оптимизация гиперпараметров в Python
  45. Получение размера объекта с sys.getsizeof()
  46. Форматирование строк в Python
  47. Списки: объединение, изменение
  48. Возврат нескольких значений
  49. Генераторы в Python

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