Курс 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. Модуль itertools: комбинации и перестановки
  3. Метод invert для побитового отрицания
  4. Поиск частых элементов в списке
  5. Создание списков в Python
  6. Лямбда-функции в Python
  7. Поиск уникальных и повторяющихся элементов
  8. Функция enumerate() в Python
  9. Работа с кортежами в Python
  10. Декораторы в Python
  11. Применение функции map() в Python
  12. Локальные переменные.
  13. Списки в Python: синтаксис представления
  14. Переопределение метода sub
  15. Создание копии списка в Python
  16. Генератор надежных паролей
  17. Инверсия списка и строки
  18. Конкатенация строк с join() в Python
  19. Форматирование вывода с F-строками
  20. Настройка вывода в Numpy
  21. Создание словаря с значением по умолчанию
  22. Работа с SQLite в Python
  23. Обработка исключений в Python
  24. Создание детектора плагиата
  25. Удаление дубликатов из списка
  26. Модуль pprint
  27. Создание новых списков в Python
  28. Использование эмодзи в Python
  29. Работа с GitHub в Telegram
  30. Оценка точности модели
  31. Функция rsplit() в Python
  32. Считывание бинарного файла в Python
  33. Удаление ключа из словаря
  34. Модуль math: константы π и e
  35. Декораторы с @wraps
  36. Форматирование заголовков в Python
  37. Colorama: окрашивание текста в Python
  38. Эффективная конкатенация строк в Python
  39. Определение функций с необязательными аргументами
  40. Оператор == в Python
  41. Решатель судоку на Python с pygame
  42. Проверка памяти объекта
  43. Работа с комплексными числами
  44. Преобразование чисел в восьмеричную строку
  45. Подсчет элементов в Python

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