Курс 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. ROT13 Шифр Цезаря в Python
  4. Повторение элементов списков
  5. Операторы увеличения и уменьшения в Python
  6. Список и кортеж в Python
  7. Библиотека sh: удобные команды терминала
  8. Сериализация и десериализация объектов
  9. Необязательные аргументы в Python
  10. Ускорение обработки данных с %autoawait
  11. Отправка HTTP-запросов в Python
  12. Секреты Python
  13. Хэш-функции и метод цепочек
  14. Изменение логики работы с временем
  15. Идентификатор объекта в Python
  16. Работа со строками в Python
  17. Стать Python-разработчиком
  18. Проверка дублей в списке.
  19. Вакансии в Nebius
  20. Python Метод Union Множеств
  21. Метод rename() для переименования файлов и каталогов
  22. Python и Юникод: работа с цифрами
  23. Генераторы в Python
  24. Регистрация на TenChat
  25. Перетасовка списков в Python
  26. Справка по импортированным модулям
  27. Реализация метода __abs__ в Python
  28. Уникальные значения из списка
  29. Форматирование строк в Python.
  30. Работа с YAML в Python: PyYAML.
  31. Метод gt в Python
  32. F-строки в Python
  33. Создание именованных кортежей в Python
  34. Основные функции и модули Python
  35. Удаление ключа из словаря в Python
  36. Функция zip() — объединение последовательностей
  37. Объединение словарей в Python
  38. discard() — удаление элемента из множества
  39. Работа с CSV в Python
  40. Отладчик pdb: начало работы
  41. Удаление ссылок в Python
  42. Структуры данных в Python
  43. Использование функции enumerate()
  44. Строковое представление объектов
  45. Создание класса очереди
  46. Создание словарей в Python
  47. ChainMap избыточные ключи

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