Курс 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. Работа с NumPy
  3. Поиск всех индексов подстроки
  4. Библиотека funcy: удобные утилиты
  5. Срез списка в Python
  6. Форматирование строк в Python
  7. Оптимизация методов в Python 3.7
  8. Python UserString — создание подклассов строк
  9. Метод rsub для пользовательских чисел
  10. Управление сессиями в Python
  11. Библиотека schedule: планировщик задач
  12. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  13. Руководство по использованию Colorama
  14. Проверка памяти объекта
  15. Счетчик ссылок в Python
  16. Сглаживание списка
  17. Тестирование модели в PyTorch
  18. Python: отсутствие точек с запятыми
  19. Оптимизация параметров в Python
  20. Любовь к Python
  21. Возврат значений из генератора
  22. Определение размера папок в Python
  23. Создание итерируемых объектов
  24. Передача параметров в Python
  25. Работа с deque в Python
  26. Оператор «or» в Python
  27. Абстракции словарей и множеств в Python
  28. Удаление URL-адресов в Python
  29. Определение наиболее частого элемента с помощью collections.Counter
  30. Преобразование документов в PDF с помощью Spire.Office
  31. Методы в Python
  32. Метод split() для разделения строк
  33. Операторы += в Python
  34. Логирование с Loguru
  35. Ограничение ресурсов в Python
  36. lru_cache оптимизация функций
  37. Получение ID процесса
  38. Метод count() для списка
  39. Создание графики с черепахой
  40. Сериализация данных в JSON с помощью json.dumps
  41. Python и Юникод: работа с цифрами
  42. Генераторы в Python
  43. Метод __ilshift__ для битового сдвига влево
  44. Показ всплывающих окон Tkinter
  45. Генерация UUID в Python
  46. Простой калькулятор Python
  47. Оператор Walrus в Python
  48. Удаление элемента из списка в Python

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