Курс 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. Получение имени функции с помощью inspect
  3. Работа с Enum в Python3.
  4. Создание даты из строки ISO
  5. Именование переменных в Python
  6. Метод gt в Python
  7. Работа с WindowsPath()
  8. Принципы программирования
  9. Основы работы со строками в Python
  10. Форматирование вывода списков
  11. Создание класса очереди
  12. Работа со словарями Python
  13. Операторы присваивания в Python
  14. Перехват исключений в Python
  15. Удаление элемента по индексу в Python
  16. Методы обработки строк в Python
  17. Отправка HTTP-запросов в Python
  18. Списковый компрехеншен.
  19. Отношения подклассов в Python
  20. Работа с файлами в Python
  21. Поиск HTML-элементов с BeautifulSoup
  22. Работа с JSON данными в Python
  23. Множественное наследование в Python
  24. Вакансии в Nebius
  25. Метод ipow для возведения в степень
  26. Фильтрация списка от «ложных» значений
  27. Модуль itertools: комбинации и перестановки
  28. Форматирование строк в Python
  29. Оператор break в Python
  30. Присвоение значений переменным в Python
  31. Порядок и длина множеств в Python
  32. Переопределение метода __lshift__
  33. Парсинг статей с Newspaper3k
  34. Измерение времени выполнения кода
  35. Функция enumerate() в Python
  36. Игра «Камень, ножницы, бумага» — Python
  37. Методы и функции в Python
  38. Python: изменяемые и неизменяемые коллекции
  39. Получение списка кортежей из словаря
  40. Удаление элементов по срезу
  41. Библиотека wikipedia для Python
  42. Операции с матрицами в Python
  43. Codecademy в Telegram
  44. Методы __repr__ и __str__ в Python
  45. Профилирование кода
  46. Метод Enumerate() для списков
  47. Работа с контекст-менеджером «with»
  48. Работа с файлами в Python

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