Курс 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. Оператор Walrus в Python
  2. Разбиение строки в Python
  3. Применение функции к каждому элементу списка
  4. Поиск самого длинного слова в списке с использованием max()
  5. Методы list в Python
  6. Работа с библиотекой xkcd
  7. Работа с enumerate()
  8. Присвоение и ссылки
  9. Обновление ключей в Python
  10. Оператор * в Python
  11. Переопределение метода __and__
  12. Распаковка с оператором *
  13. Удаление элементов из списка в Python.
  14. Оптимизация строк в Python
  15. Импорт модулей и пакетов в Python
  16. Хеши в Python
  17. Создание графиков в терминале
  18. Метод hash в Python
  19. Итераторы с потерямиZIP
  20. Работа с итераторами через срезы
  21. Работа с IP-адресами в Python
  22. Удаление элементов из списка в Python
  23. Структуры данных в Python
  24. Освоение Python
  25. Работа с типами данных в Python с помощью pydantic.
  26. Работа с defaultdictами в Python
  27. Метод get() в Python
  28. Объединение Python и Shell
  29. GitHub в Telegram: подписка на уведомления
  30. Иерархия классов в Python
  31. Списки: объединение, изменение
  32. Методы shutil для работы с файлами
  33. Транспонирование матрицы
  34. Python OrderedDict и fromkeys() — работа с словарями
  35. Функция all() в Python
  36. Создание новых списков
  37. Метод gt в Python
  38. Удаление символов новой строки в Python.
  39. Использование метода lower()
  40. Объединение строк с помощью метода join
  41. Работа с WindowsPath()
  42. Сортировка с параметром key
  43. Оператор (*) в Python
  44. Решатель судоку на Python с pygame
  45. Управление сессиями в Python
  46. Перевод двоичного кода в целое число

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