Курс 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. Преобразование регистра символов
  5. Создание и использование ChainMap
  6. Работа с CSV файлами в Python
  7. Операция += для списков
  8. Создание списков в Python
  9. Функция с **kwargs в Python
  10. Получение ID текущего процесса
  11. Получение ID процесса
  12. JMESPath в Python
  13. Извлечение аудио из видео
  14. Обновление ключей в Python
  15. Работа со временем в Python
  16. Модуль functools в Python
  17. Генераторные функции в Python
  18. Основные операции с Numpy
  19. Импорт объектов из модулей
  20. %pinfo: получение информации об объекте
  21. Оператор распаковки в Python
  22. Объединение словарей в Python
  23. Преобразование числа в список цифр
  24. Замена символов в строке
  25. Работа с кортежами в Python
  26. Получение текущей даты и времени с помощью datetime
  27. Использование html-скриптов в Jupyter Notebook
  28. Генерация UUID в Python
  29. Основы Python
  30. Обработка ошибок в JSON данных
  31. Метод ne для сравнения объектов
  32. Генераторы в Python
  33. Генераторы в Python
  34. Оператор match в Python
  35. Инверсия списка и строки в Python
  36. Проверка на палиндром
  37. Проблема сравнения словарей
  38. Генератор данных в Keras
  39. Аннотации типов в Python
  40. Создание новых списков
  41. Метод clear для коллекций
  42. Подсчет частотности элементов в Python
  43. Работа с CSV в Python
  44. Функциональное программирование.
  45. Срезы в Numpy
  46. Перегрузка операторов в Python
  47. Операции со строками в Python
  48. Списковое включение в Python

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