Курс 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. Экспорт данных с помощью writefile
  2. Склеивание строк через метод join()
  3. Импорт модулей в Python 3.12
  4. Создание вкладок с TKinter
  5. Дефолтные параметры в Python
  6. Библиотека schedule: планировщик задач
  7. Тернарный оператор в Python
  8. Виртуальное окружение Python
  9. Создание списков в Python
  10. Операции с матрицами в Python
  11. Defaultdict в Python
  12. Непрерывная проверка в Python
  13. Удаление элемента по индексу в Python
  14. Парсинг веб-страниц с Beautiful Soup
  15. Форматирование данных с pprint
  16. Ускоренный импорт библиотек
  17. Руководство по библиотеке pydantic
  18. Обработка элементов в Python
  19. Цикл for в Python
  20. Работа с индексами списков
  21. Любовь к Python
  22. Enum в Python
  23. Применение функции к списку
  24. Возвращение нескольких значений
  25. Переопределение метода __floordiv__
  26. Работа с zip()
  27. Создание уникального проекта
  28. Создание копии списка в Python
  29. Обработка ошибок в Python
  30. Получение размера объекта с sys.getsizeof()
  31. Доступ к локальным переменным
  32. Копирование в Python
  33. Срез списка в Python
  34. Итераторы с потерямиZIP
  35. Комментарии в Python.
  36. Профилирование данных с Pandas
  37. Вложенные функции в Python
  38. Работа с датой и временем в Python
  39. Многострочные комментарии в Python
  40. Оформление кода по PEP 8
  41. Сглаживание списка
  42. Библиотека Emoji: использование смайлов в Python
  43. split() без разделителя

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