Курс 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. Метод ne для сравнения объектов
  2. Метод __complex__ в Python
  3. Синхронизация потоков с time.sleep()
  4. Искажение имен в Python
  5. Декораторы в Python
  6. Запуск файлового сервера
  7. Поиск индексов в списке
  8. Декоратор защиты анонимных пользователей
  9. Многострочные комментарии в Python
  10. Профилирование с Pandas
  11. Работа с модулем glob в Python
  12. Проверка вхождения подстроки
  13. Установка виртуального окружения Python
  14. Счетчик в Python: most_common()
  15. Деление в Python
  16. Профилирование с cProfile
  17. Безопасный доступ к значениям словаря
  18. Оператор «or» в Python
  19. Логические значения в Python
  20. Проверка кортежей.
  21. Декоратор Ajax required
  22. Magic Commands — улучшение работы с Python
  23. Переворот списка в Python
  24. Работа с переменными в Python
  25. Использование super() в Python
  26. Регистрация на хакатоне
  27. Регулярные выражения: метод match
  28. Создание графики с черепахой
  29. Эффективная конкатенация строк в Python
  30. Работа с файлами в Python
  31. Глубокое копирование объектов
  32. Метод rpow в Python
  33. Сериализация и десериализация объектов
  34. Скачать видео с YouTube
  35. Ограничение итераций в Python
  36. Метаклассы в Python
  37. Проверка окончания строки с помощью str.endswith()
  38. Операции с датами в Python
  39. Изучение объектов с помощью dir()
  40. Логирование в Python
  41. Поиск частого элемента
  42. Получение имени функции с помощью inspect
  43. Работа с словарями в Python
  44. Любовь к Python
  45. Обрезка изображения с Pillow
  46. Экспорт функций в Python
  47. Проверка типов с использованием isinstance

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