Курс 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. Назначение максимального и минимального значения переменной в Python.
  3. Выборка чисел
  4. Операции с датами в Python
  5. Обновление ключей в Python
  6. Генераторы данных
  7. Работа с комплексными числами в Python
  8. Хеширование паролей с использованием salt
  9. Работа с кортежами в Python
  10. Особенности множеств в Python
  11. Обход элементов в Python
  12. Разделение строки с помощью re.split()
  13. Функция zip() в Python
  14. Инверсия списка и строки
  15. Извлечение данных из JSON
  16. Преобразование чисел в Python
  17. Нахождение самого длинного слова в списке с помощью max
  18. Удаление дубликатов из списка с помощью dict.fromkeys
  19. Определение размера папок в Python
  20. Создание и операции с дробями
  21. Ввод нескольких значений
  22. Метод __getitem__ в Python
  23. Передача аргументов через **arguments
  24. Функция map() и ленивая оценка
  25. Поиск самого частого элемента
  26. Модуль array: создание и использование массивов
  27. Ограничение итераций в Python
  28. Поиск кода
  29. Декоратор Property в Python
  30. Функциональное программирование в Python
  31. Работа с файлами в Python
  32. Проверка на истинность объектов в Python
  33. Оптимизация строк в Python
  34. F-строки в Python 3.8
  35. Работа со словарями Python
  36. Функции any() и all() в Python
  37. Отладка кода
  38. Преобразование данных в Python
  39. Обновление и получение данных в SQLite
  40. Метод matmul для умножения матриц
  41. Оптимизация параметров в Python
  42. Счетчик ссылок в Python
  43. Декораторы с аргументами в Python
  44. Названия столбцов в Python таблицах
  45. Ветвление выражения в Python
  46. Декораторы в Python
  47. Получение комбинаций в Python

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