Курс 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. Метод init в Python
  2. Библиотека Rich: форматирование текста
  3. Объединение списков в Python
  4. Библиотека sh: удобные команды терминала
  5. Операторы увеличения и уменьшения переменной
  6. Освоение Python
  7. Непрерывная проверка в Python
  8. Подсчет вхождений элементов
  9. Python OrderedDict и fromkeys() — работа с словарями
  10. Функция enumerate в Python
  11. Нахождение отличий в списках
  12. Структурирование данных с Pydantic
  13. Область видимости переменных
  14. Структура данных словарь в Python
  15. Получение текущего времени в Python
  16. Философия Python
  17. Операторы сравнения в Python
  18. Удаление ключей из словаря
  19. Работа с модулем random
  20. Удаление дубликатов из списка с помощью dict.fromkeys
  21. f-строки в формате строк
  22. Циклы for в Python
  23. Замер времени выполнения кода
  24. Работа с необработанными строками
  25. Создание таблиц в терминале с PrettyTable
  26. Атрибуты класса и экземпляра
  27. Локальные переменные.
  28. Регулярные выражения: метод match
  29. Получение частей дроби
  30. Метод remove() для удаления элемента из списка
  31. Упрощенный вывод данных в Python
  32. Обучение модели с указанием эпох
  33. Отправка поздравлений по дню рождения
  34. Измерение времени выполнения кода с использованием time
  35. Контроль точности вывода чисел
  36. Операция += для списков
  37. Улучшение читаемости кода в Python
  38. Функция zip() — объединение последовательностей
  39. Изменения в обработке логических значений
  40. Присоединение элементов коллекции
  41. TON Smart Challenge #2: участие и подготовка
  42. Создание функций высшего порядка
  43. Функция all() в Python
  44. Получение комбинаций в Python
  45. Решение переменной Шредингера
  46. Использование модуля math
  47. Применение промокода в Много лосося
  48. Использование type hints

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