Курс 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. Переворот последовательности
  2. Создание и операции с дробями
  3. Удаление элементов по срезу
  4. Измерение времени выполнения кода
  5. Разбиение строки в Python
  6. Закрытие файла в Python
  7. Группировка элементов Python
  8. Виртуальное окружение Python
  9. Генерация QR-кодов с библиотекой qrcode
  10. Удаление элементов из списка
  11. Проекты на Python
  12. Многострочные комментарии в Python
  13. Функция с **kwargs в Python
  14. Удаление файлов и папок в Python
  15. Официальный канал Python в Telegram
  16. Операции с матрицами в Python
  17. Объединение строк с помощью метода join
  18. Удаление эмодзи с помощью pandas
  19. Функции в Python
  20. Функция с *args.
  21. Стать Python-разработчиком
  22. Python: динамическая типизация и проверка типов
  23. Проблема сравнения словарей
  24. Управление виртуальными окружениями в Python
  25. Разделение строк в Python
  26. Функции в одну строку
  27. Работа с модулем glob в Python
  28. Повторение и перенос строки
  29. Проверка дубликатов в Python
  30. Создание списков в Python
  31. Методы split() и join() — Python строк.
  32. Условное добавление элементов в список
  33. Измерение потребления памяти при сортировке
  34. Генерация тестовых данных с factory_boy
  35. Повторение элементов в Python
  36. Сортировка элементов с OrderedDict
  37. Создание словарей с defaultdict
  38. Python Менеджер контекста
  39. Работа с комбинациями в Python.
  40. Работа с контекст-менеджером «with»
  41. Работа с множествами в Python
  42. Solidity для DeFi Ethereum
  43. Отладка в Python
  44. Метод сравнения объектов в Python

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