Курс 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. Метод radd для пользовательских чисел
  3. Работа с рекламными данными в Pandas
  4. Оператор in в Python
  5. Очистка вывода в Python
  6. Работа с Enum в Python3.
  7. Извлечение новостей с newspaper3k
  8. Парсинг статей с Newspaper3k
  9. Подсчет вхождений элементов
  10. Автоматизация с Python
  11. Создание комплексных чисел
  12. Запрос пароля с помощью getpass
  13. Печать комбинаций в Python с Itertools
  14. Улучшение читаемости кода в Python
  15. Оператор Walrus: правильное использование
  16. Многопоточность и асинхронное программирование в Python
  17. Срез в Python
  18. Создание объекта timedelta
  19. Работа с модулем random
  20. Запуск асинхронной корутины
  21. Метод join для объединения строк
  22. Управление User-Agent в Python
  23. Установка Home Assistant
  24. Поиск частых элементов в списке
  25. Копирование объектов в Python
  26. Удаление дубликатов из списка с помощью dict.fromkeys
  27. Работа с модулем random
  28. Работа со строками в Python
  29. Удаление дубликатов в pandas
  30. Форматирование строк в Python
  31. Список и кортеж в Python
  32. Работа с комплексными числами
  33. Проверка однородности элементов списка
  34. Подписка на SelectelNews в Twitter
  35. Метод classmethod
  36. Регулярные выражения: метод match
  37. Капитализация строк
  38. Создание словаря с значением по умолчанию
  39. Метод rsub в Python: расширение функциональности вычитания
  40. Порядок и длина множеств в Python
  41. Итерация по копии коллекции
  42. Генератор списка в Python
  43. Переворот строки с помощью срезов
  44. Генераторы списков в Python
  45. Блок else в циклах.
  46. Подписка на @SelectelNews
  47. Python reversed() функция
  48. Метод get() для словарей

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