Курс Python → Генераторы по генератору

Генераторы в Python — это специальный тип функций, которые позволяют генерировать последовательности значений по требованию, не загружая всю последовательность в память. Они итерируемы, что означает, что их можно использовать в циклах for для обхода элементов последовательности. Однако, генераторы также могут быть использованы для создания других генераторов, что позволяет создавать более сложные последовательности.

Для создания генератора по генератору в Python можно использовать два выражения, разделенных запятой. Например, если у нас есть генератор, который возвращает числа от 1 до 10, мы можем создать новый генератор, который будет возвращать квадраты этих чисел, просто добавив выражение возводящее число в квадрат. Таким образом, мы можем создавать цепочки генераторов для преобразования данных.


def numbers_generator():
    for i in range(1, 11):
        yield i

def squares_generator():
    for num in numbers_generator():
        yield num ** 2

for square in squares_generator():
    print(square)

Также можно использовать вложенные генераторы, где один генератор будет вложен в другой. Это позволяет создавать более сложные структуры данных, например, генератор, который возвращает последовательности чисел, каждая из которых является результатом другого генератора. Такой подход позволяет эффективно управлять памятью и улучшить производительность программы.

Использование генераторов по генератору в Python позволяет писать более компактный и читаемый код, а также улучшает производительность программы за счет ленивой загрузки данных. Благодаря гибкости генераторов, можно легко преобразовывать и комбинировать данные, создавая сложные последовательности значений без необходимости хранить их в памяти.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Кортеж в Python: создание и использование
  2. Переопределение метода __floordiv__
  3. Работа с контекстными менеджерами
  4. Логический оператор «and» в Python
  5. Магические методы в Python
  6. Разрешение имен в Python
  7. Декораторы в Python
  8. Создание OrderedDict
  9. Работа с SQLite в Python
  10. Добавление вложенных списков
  11. ChainMap избыточные ключи
  12. Получение значений из словарей
  13. Оператор (*) в Python
  14. Переопределение метода
  15. Работа с файловой системой в Python
  16. Роль object и type в Python
  17. Объединение словарей в Python
  18. Декораторы с аргументами
  19. Функция product() из itertools
  20. Очистка списка от False, None, 0, «»
  21. Метод __float__ в Python
  22. Пустой оператор pass в Python
  23. Преобразование документов в PDF с помощью Spire.Office
  24. Декораторы в Python
  25. Циклы в Python
  26. Создание циклической ссылки
  27. Вывод с переменной через запятую
  28. Выражения-генераторы в Python
  29. Контекстный менеджер в Python
  30. Функции высшего порядка в Python
  31. Переворот списка в Python
  32. Лямбда-функции в Python
  33. enumerate() в Python для работы с индексами
  34. Python: Splat-оператор и splatty-splat
  35. Magic Commands — улучшение работы с Python
  36. Поиск с библиотекой Google
  37. Тип CodeType в Python.
  38. Красивый вывод списка
  39. Управление пакетами с pip
  40. Инверсия списка и строки в Python
  41. Создание новых функций через partial
  42. Работа с Colorama
  43. Преобразование в float
  44. Сокращение ссылок с pyshorteners
  45. Определение относительного пути

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