Курс 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. ChainMap избыточные ключи
  2. Операции с кортежами
  3. Работа с изменяемыми списками
  4. Изменение элемента списка
  5. Работа с YAML в Python
  6. Хранение переменных в словаре.
  7. Создание новой даты в Python
  8. Проверка памяти объекта
  9. Проверка условий: all и any
  10. Генераторные функции в Python
  11. Метод difference_update() — разность множеств
  12. Библиотека schedule: планировщик задач
  13. Оптимизация интернирования строк
  14. Явный импорт в Python
  15. Concrete Paths — метод .with_suffix()
  16. JMESPath в Python
  17. Создание словаря и множества
  18. Разработка игры Pong с turtle
  19. Скачать видео с YouTube
  20. Путь к интерпретатору Python
  21. Генераторы списков
  22. Настройка Cron
  23. Вычисление натурального логарифма в NumPy
  24. Работа с процессами в Python
  25. Работа с географическими данными.
  26. Создание словарей и множеств в Python.
  27. Monkey Patching в Python
  28. Удаление элементов из списка
  29. Нан-рефлексивность в Python
  30. Перегрузка операторов в Python
  31. Удаление элемента по индексу в Python
  32. Перевернуть список в Python
  33. Обезопасьте ввод данных
  34. Использование модуля __future__
  35. Извлечение данных из JSON
  36. Функция zip() в Python
  37. Многопроцессорное программирование в Python
  38. Тестирование функции сложения
  39. Отправка поздравлений по дню рождения
  40. Метод get() в Python
  41. Установка Python3.7 и PIP
  42. Обновление шаблона base.html
  43. Реализация метода __abs__ в Python
  44. Создание копии списка в Python
  45. Преобразование данных в Python
  46. Именование столбцов в Python с pandas
  47. Эффективная конкатенация строк с использованием join()
  48. Декораторы для регистрации функций

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