Курс 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. Работа с модулем random
  2. ROT13 Шифр Цезаря в Python
  3. Расчет времени выполнения
  4. Множественное назначение в Python
  5. Создание словарей с defaultdict
  6. Генераторы в Python
  7. Вызов внешних программ в Python с помощью sh
  8. Условное добавление элементов в список
  9. Основы работы со списками
  10. Генераторы в Python
  11. Распаковка аргументов в Python
  12. Получение значений из словарей
  13. Метод init в Python
  14. Печать в одной строке
  15. Объединение словарей в Python
  16. Блок try…finally в Python
  17. Метод rxor для операции побитового исключающего «или»
  18. Удаление элементов из списка
  19. Python groupby() из itertools: работа с повторяющимися элементами
  20. Замена элементов в списке с помощью генераторов списков
  21. Бинарный поиск
  22. Метод remove() для удаления элемента из списка
  23. Работа с файлами в Python
  24. Разработка Telegram-ботов
  25. Округление банкира в Python
  26. Лимиты на ресурсы Python
  27. Аргументы *args и **kwargs
  28. Функции в Python: создание и вызов
  29. capitalize() — изменение регистра первого символа строки
  30. Оператор in для Python
  31. Оператор объединения словарей
  32. Инвертирование словаря
  33. Построение графиков в Matplotlib
  34. Извлечение статей с newspaper3k
  35. Декоратор @override
  36. Установка и использование модуля «howdoi»
  37. Списковое включение в Python
  38. Упрощение работы с JSON-данными в Python
  39. Метод rsub для пользовательских чисел
  40. Управление ресурсами в Python
  41. Применение функции map() с лямбда-функциями
  42. Декораторы в Python
  43. Скачать видео с YouTube
  44. Создание именованных кортежей в Python
  45. Экспорт внешнего файла с помощью writefile
  46. Удаление элементов во время итерации
  47. Подписка на SelectelNews в Twitter

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