Курс 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. Работа с буфером обмена на Python
  2. Работа с модулем bisect
  3. Объединение словарей в Python
  4. Цикл for в Python
  5. Пропуск строк в файле с itertools
  6. Блок try…finally в Python
  7. Освоение Python
  8. Метод get() для словарей
  9. Модуль inspect
  10. Обработка исключений в Python
  11. Метод Enumerate() для списков
  12. Декораторы в Python
  13. Работа с рекламными данными в Pandas
  14. Работа с комбинациями в Python.
  15. Решатель судоку на Python с pygame
  16. Python Тесты и Гайды
  17. Переопределение оператора % для объектов
  18. Умножение строк и списков
  19. Преобразование чисел в Python
  20. Библиотека itertools: объединение списков
  21. Работа с набором данных CIFAR10 в PyTorch
  22. Удаление URL-адресов в Python
  23. Объединение кортежей в Python
  24. Удаление дубликатов с помощью множеств
  25. Метод сравнения объектов в Python
  26. Работа с классами данных
  27. Преобразование текста в нижний регистр
  28. Функция product() из itertools
  29. Enum в Python
  30. Встраивание HTML в Jupyter Notebook
  31. Поиск шаблона в строке
  32. Генераторы в Python
  33. Создание словаря с значением по умолчанию
  34. Инвертирование словаря
  35. Форматирование строк в Python
  36. Создание словаря и множества
  37. Перехват исключений в Python
  38. Работа с аргументами командной строки в Python
  39. Конвертация текстовых чисел с помощью Numerizer
  40. Обработка исключений в Python
  41. Оператор «not» в Python
  42. Декоратор total_ordering для класса Point
  43. Определение относительного пути
  44. Метод Event.wait() в Python
  45. Переопределение метода __and__
  46. Python enumerate() функции
  47. Настройка нарезки списков

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