Курс 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. Проверка вхождения подстроки
  2. Оператор @ для умножения матриц
  3. Python: отсутствие точек с запятыми
  4. Преобразование Excel в PDF с Spire.XLS
  5. Тестирование с unittest
  6. Символ подчеркивания в Python
  7. Аннотации типов в Python
  8. Анонимные функции в Python
  9. Работа с массивами в Python
  10. Работа с модулем cmath
  11. Сравнение объектов в Python
  12. Сравнение объектов в Python
  13. Измерение времени выполнения кода в Python
  14. Атрибуты объекта в Python
  15. Избегайте двойного подчеркивания
  16. Область видимости переменных
  17. Python-dateutil — работа с датами
  18. Принципы Zen of Python
  19. Рациональные числа в Python
  20. Метод join() для объединения элементов в строку.
  21. Шаблоны и наследование в Flask
  22. Сложение матриц в NumPy
  23. Импорт модулей и пакетов в Python
  24. Перемещение и удаление файлов в Python
  25. Метод enumerate() в Python
  26. Хешируемые ключи в Python
  27. Методы __repr__ и __str__ в Python
  28. Глобальные переменные в Python
  29. Удаление элементов из списка
  30. Оператор морж в Python 3.8
  31. Установка и использование Logzero
  32. Методы в Python
  33. Создание коллекций из выражения-генератора
  34. Объединение словарей в Python
  35. Работа с набором данных CIFAR10 в PyTorch
  36. Работа со случайными элементами
  37. Проверка окончания строки с помощью str.endswith()
  38. Преобразование списка в словарь через генератор
  39. Просмотр файла в Jupyter Noteboo
  40. Аргумент по умолчанию
  41. Оператор «is not» в Python
  42. Создание списков в Python
  43. Функции min(), max(), sum()
  44. Цикл for с enumerate() в Python
  45. Методы сравнения множеств
  46. Вывод букв строки в Python
  47. Работа с очередями в Python

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