Курс 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. Функция reversed() в Python
  2. Подсчет элементов в Python
  3. Установка Python3.7 и PIP
  4. Блок else в обработке исключений
  5. Избегайте использования goto
  6. Изменение регистра данных
  7. Метод сравнения объектов в Python
  8. Сортировка данных в Python
  9. Профилирование кода
  10. Генерация случайных чисел Python
  11. Преобразование текста в нижний регистр
  12. Python 3.12: переиспользование кавычек
  13. Функция zip() в Python
  14. Многострочные строки в Python
  15. Принцип одной функции
  16. Названия переменных
  17. Оператор объединения словарей
  18. Измерение времени выполнения кода с использованием time
  19. Удаление элемента по индексу
  20. Обновление данных через PUT запрос
  21. Оператор is в Python
  22. Замена текста с re.sub()
  23. Работа с аргументами командной строки
  24. Вычисление разности множеств в Python
  25. Создание и операции с дробями
  26. Python: отсутствие точек с запятыми
  27. Перегрузка операторов в Python
  28. Замена атрибута в именованном кортеже
  29. Работа с географическими данными в Python
  30. Вычисление натурального логарифма в NumPy
  31. Работа с комплексными числами в Python
  32. Метод __index__ в Python
  33. Установка и использование Virtualenv
  34. Итерация по копии коллекции
  35. Сортировка списка по индексам
  36. Работа с NumPy массивами
  37. Метод setdefault() в Python
  38. Генераторные функции в Python
  39. Оператор морж в Python 3.8
  40. Операции с кортежами
  41. Руководство по библиотеке pydantic
  42. Удаление дубликатов в pandas
  43. Поиск индекса элемента
  44. Именованные кортежи в Python
  45. Модуль xkcd: загрузка комиксов
  46. Модуль math: основные функции
  47. Упрощение условных выражений с тернарным оператором

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