Курс 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. Методы работы со списками
  2. Метод lt для сортировки объектов
  3. Извлечение новостей с помощью newspaper3k
  4. Проверка типов с помощью isinstance
  5. Дизассемблирование Python кода
  6. Цикл for с enumerate() в Python
  7. Структуры данных в Python
  8. Сортировка с помощью key
  9. Проверка ввода с помощью isdigit
  10. Фильтрация списков с itertools
  11. Обработка ошибок в Python
  12. Создание функций высшего порядка
  13. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  14. Измерение времени выполнения
  15. Метод __ilshift__ для битового сдвига влево
  16. Удаление символов новой строки в Python.
  17. Руководство по Pymorphy2
  18. Форматирование строк с помощью f-строк
  19. Метод append() для списка
  20. Списковое включение в Python
  21. PUT запрос для обновления данных
  22. Таймер обратного отсчета
  23. Хранение переменных в словаре.
  24. Генераторы данных
  25. Операторы объединения в Python 3.9
  26. Работа с URL-адресами в Python
  27. Импорт модулей и пакетов в Python
  28. Транспонирование матрицы в Python
  29. Работа со словарями
  30. Объединение словарей в Python
  31. Обрезка изображения с Pillow
  32. Метод title() в Python
  33. Использование подчеркивания в REPL
  34. Функции с дополнением
  35. Управление ресурсами в Python
  36. Работа с итераторами в Python
  37. Явный импорт переменных
  38. Участие в LP стейкинге Waves
  39. Сортировка данных с лямбда-функциями
  40. Печать в одной строке
  41. Сравнение def и lambda в Python
  42. Поиск частых элементов в списке
  43. Обработка исключений с блоком else
  44. Циклы в Python
  45. Создание циклической ссылки
  46. Атрибуты объекта в Python

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