Курс 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. Вложенные генераторы в Python
  3. Передача словаря через **kwargs
  4. Объединение словарей в Python
  5. Метод __irshift__ для Python
  6. Работа со словарями в Python
  7. Красивый вывод списка
  8. Работа с контекстными менеджерами
  9. Функции классификации комплексных чисел
  10. Обучение модели с указанием эпох
  11. Форматирование строк в Python
  12. Равенство и идентичность в Python
  13. Функция zip() в Python
  14. Генераторы данных
  15. Метод join() для объединения строк
  16. Метод clear для коллекций
  17. Декораторы с аргументами
  18. Многострочные строки в Python
  19. Переменные в Python: сокращение гласных
  20. Метод rmatmul для обратного матричного умножения
  21. Операция += для списков
  22. SciPy: широкий функционал для математических операций
  23. Работа с NumPy массивами
  24. Оператор += в Python
  25. Динамические маршруты во Flask
  26. Работа с IP-адресами в Python
  27. Сортировка данных в Python
  28. Разрешение имен в Python
  29. Создание и использование ChainMap
  30. Визуализация пропусков данных
  31. Многоточие в Python
  32. Поиск кода
  33. Работа с процессами в Python
  34. Улучшенные подсказки для импорта в Python 3.12
  35. Проверка надежности пароля на Python
  36. Подсчет количества элементов в списке
  37. Профилирование данных с Pandas
  38. Функция map() и ленивая оценка
  39. Списковое включение в Python
  40. Работа с изменяемыми коллекциями
  41. Оператор match в Python
  42. Замена подстроки
  43. Colorama: окрашивание текста в Python
  44. Оформление текста в консоли с TermColor
  45. Метод pop() списка

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