Курс Python → Генераторы в Python

Генераторные функции — это мощный инструмент в Python, который позволяет создавать итераторы с минимальным использованием памяти. Вместо того чтобы создавать список или кортеж сразу со всеми значениями, генераторная функция генерирует значения по мере необходимости. Это особенно полезно, когда у вас есть большой объем данных, которые необходимо обработать поэлементно.

Для создания генераторной функции в Python используется ключевое слово yield. Когда интерпретатор Python встречает оператор yield в функции, он приостанавливает выполнение функции и возвращает значение. При следующем вызове функции выполнение продолжается с того же места, где оно было приостановлено, и продолжается до следующего оператора yield.


def my_generator():
    for i in range(5):
        yield i

gen = my_generator()
for value in gen:
    print(value)

В этом примере функция my_generator является генераторной функцией, которая возвращает числа от 0 до 4. При вызове функции my_generator() создается объект-генератор, который можно использовать в цикле for для обхода всех значений, сгенерированных функцией.

Использование генераторных функций особенно полезно в случаях, когда необходимо применить серию фильтров или обработчиков к элементам списка. Вместо того чтобы создавать промежуточные списки с отфильтрованными значениями, можно использовать генераторы для ленивой обработки данных, что позволяет сэкономить память и улучшить производительность.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Оператор == в Python
  2. Добавление цвета в консоли
  3. Повторение элементов списков
  4. Управление User-Agent в Python
  5. Оптимизация памяти с slots
  6. Удаление элемента по индексу в Python
  7. Реализация операции -= для пользовательского класса
  8. Метод ifloordiv для пользовательских классов
  9. Декораторы в Python
  10. Тестирование с responses
  11. Генераторы данных
  12. Метод __iand__ для пользовательских классов
  13. Проверка списка: any() и all()
  14. Объединение итераторов
  15. Модуль os в Python: работа с файлами
  16. Виртуальное окружение Python
  17. Метод rxor для операции побитового исключающего «или»
  18. Логирование с Logzero: ротация файла
  19. Метод __imod__ для Python
  20. Переопределение метода delitem в Python
  21. Операции со строками в Python
  22. Работа с CSV файлами
  23. Отладка кода
  24. Основы работы с os
  25. Таймер обратного отсчета
  26. Оператор «not» в Python
  27. Удаление дубликатов с помощью множеств
  28. Декораторы в Python
  29. Автоматизация с Python
  30. Возврат нескольких значений
  31. Распаковка с оператором *
  32. Управление контекстом с помощью декоратора contextmanager
  33. Классы данных в Python
  34. Определение относительного пути
  35. Лямбда-функции в Python
  36. Операции с матрицами в Python
  37. Обработка исключения UnboundLocalError
  38. SciPy: широкий функционал для математических операций
  39. Сглаживание списка
  40. Функция map() в Python
  41. Python: динамическая типизация и проверка типов
  42. Метод join() для объединения элементов строки
  43. Сравнение def и lambda функций в Python
  44. Объединение списков с использованием itertools.chain
  45. Оператор @ для умножения матриц
  46. Скачать видео с YouTube
  47. Моржовый оператор в Python 3.8

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