Курс 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. Путь к интерпретатору Python
  3. Удаление дубликатов с помощью множеств
  4. Работа со слайсами
  5. Запуск внешнего кода в Jupyter
  6. Генераторы в Python
  7. Хранение переменных в Python.
  8. Асинхронное программирование с asyncio
  9. Обработка ошибок в Python
  10. Эффективная конкатенация строк в Python
  11. Создание виртуальной среды
  12. Преобразование данных в Python
  13. Замена атрибута в именованном кортеже
  14. Форматирование заголовков в Python
  15. Ускорение выполнения кода в Python
  16. Вставка переменных в шаблоны Flask
  17. Python: цикл for и оператор присваивания
  18. Передача неизвестных аргументов в Python.
  19. Поиск email
  20. Пространство имен в Python
  21. Метод invert для побитового отрицания
  22. Нан-рефлексивность в Python
  23. Разделение строк в Python
  24. Перегрузка операторов в Python
  25. Работа с NumPy
  26. Метод join() для объединения элементов строки
  27. Функция enumerate в Python
  28. Операторы += в Python
  29. Управление сессиями в Python
  30. Метод Event.wait() в Python
  31. Асинхронное выполнение задач в Python
  32. Библиотека Rich: форматирование текста
  33. Преобразование чисел в восьмеричную строку
  34. Срезы в Python
  35. Просмотр атрибутов и методов класса
  36. Создание namedtuple из словаря
  37. Преобразование PowerPoint в PDF.
  38. Динамическая типизация в Python
  39. Округление в Python
  40. Генераторы по генератору
  41. Генераторные функции в Python
  42. Подсчет элементов в Python
  43. Структуры данных в Python
  44. Разница между датами
  45. F-строки в Python
  46. Перезагрузка оператора в Python
  47. Логирование с Loguru

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