Курс 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. kwargs в Python
  3. Генерация QR-кодов с Python
  4. Синхронизация потоков с time.sleep()
  5. Dict Comprehension в Python
  6. Сериализация и десериализация объектов
  7. Импорт объектов из модулей
  8. Роль object и type в Python
  9. Метод append() для списка
  10. Получение идентификатора объекта в памяти
  11. Операции с кортежами
  12. Контекстный менеджер в Python
  13. Сортировка HTML по CSS-селектору
  14. Оператор assert в Python
  15. Хранение переменных в словаре.
  16. Экспорт внешнего файла с помощью writefile
  17. Проверка подстроки в строке
  18. Метод join() с набором
  19. Python и Юникод: работа с цифрами
  20. Определение индекса элемента списка
  21. Лямбда-функции в Python
  22. Метод __irshift__ для Python
  23. Установка и использование Logzero
  24. Переопределение унарных операторов
  25. Очистка данных с Pandas
  26. Удаление ключа из словаря
  27. Резервирование символов в Python
  28. Блок else в циклах.
  29. Объявление переменных в Python
  30. Транспонирование матрицы
  31. Создание словаря и множества
  32. GitHub в Telegram: подписка на уведомления
  33. Настройка шрифта и цвета в Tkinter
  34. Логические операторы в Python
  35. Взаимодействие с внешними процессами в Python
  36. Функция print() — вывод информации
  37. Область видимости переменных
  38. Лимиты на ресурсы Python
  39. Инвертирование словаря
  40. Подсчет количества элементов в списке
  41. Создание генераторов
  42. Объединение списков в Python
  43. Структурирование именованных констант
  44. Проверка на истинность объектов в Python
  45. Метод split() в Python
  46. Форматирование строк в Python
  47. Явный импорт в Python

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