Курс 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. Возврат нескольких значений
  2. Именованные срезы в Python
  3. Фильтрация последовательности
  4. Работа с Event() в threading
  5. Работа с PosixPath() в Python
  6. Избегайте ошибку FileNotFoundError
  7. Закрытие файла в Python
  8. Метод gt в Python
  9. Функция eval() в Python
  10. Структура данных deque в Python
  11. Работа с атрибутом dict
  12. Проверка вхождения подстроки
  13. Переопределение метода sub
  14. Вычисление времени выполнения
  15. Вакансии в Nebius
  16. Распаковка элементов последовательности
  17. TypedDict для kwargs в Python 3.12
  18. Применение функции к элементам списка
  19. Поиск уникальных и повторяющихся элементов
  20. Python enumerate() функции
  21. Python Translator: создание локальных переводчиков
  22. Удаление специальных символов
  23. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  24. Enum в Python
  25. Обработка исключений в Python
  26. Приближение чисел в Python
  27. Работа с CSV файлами
  28. Использование type hints
  29. Хеши в Python
  30. Работа с классами данных
  31. Метод count в Python: почему count(», ») возвращает 4?
  32. Множественное присваивание в Python
  33. Установка и использование модуля «howdoi»
  34. Декораторы в Python
  35. Переворот списка в Python
  36. Генерация чисел с range()
  37. Метод setdefault() в Python
  38. Работа с областями видимости переменных
  39. Вывод символов строки в Python
  40. Замена символов в строке
  41. Декораторы в Python
  42. Нахождение хеша для бесконечности и NaN в Python
  43. Проверка подстроки в строке
  44. Делегирование в Python

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