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

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

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


# Пример генератора, возвращающего квадраты чисел
def squares(n):
    for i in range(n):
        yield i ** 2
        
# Использование генератора в цикле
for num in squares(5):
    print(num)

Важно помнить, что генераторы в Python являются итерируемыми объектами, поэтому после того как все значения были возвращены, генератор исчерпывается и вызов функции next() на нем вызовет исключение StopIteration. Также можно использовать цикл while и обработку исключения StopIteration для обхода всех значений генератора.

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

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

Автор урока

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

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

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

  1. Библиотека Emoji: использование смайлов в Python
  2. Объединение списков в строку
  3. Декораторы в Python
  4. Анонимные функции Lambda
  5. Тестирование модели в PyTorch
  6. Разделение строки на подстроки в Python
  7. Функция zip() в Python
  8. Python Ellipsis использование
  9. Работа с очередями в Python
  10. Проектирование Singleton с метаклассом
  11. Оператор is в Python
  12. Проверка индексов коллекции
  13. Работа со стеком в Python
  14. Поиск файлов по шаблону
  15. Новшества Flask 2.0
  16. Обработка ошибок ввода данных
  17. Использование type hints
  18. Курсы Яндекс Практикум
  19. Переопределение метода xor в Python
  20. Библиотека Rich: форматирование текста
  21. Работа с словарями в Python
  22. Шаблоны и наследование в Flask
  23. Вычисление натуральных логарифмов в NumPy
  24. Конвертация изображений в PDF
  25. Метод ior для битовых операций
  26. Методы сравнения множеств
  27. Оболочка Python
  28. Создание файла с проверкой ошибки
  29. Правила именования переменных
  30. Модуль sys: основы
  31. Форматирование строк в Python
  32. Генераторы списков в Python
  33. Удаление эмодзи с помощью pandas
  34. Сравнение строк в Python
  35. Перегрузка операторов в Python
  36. Динамическая типизация в Python
  37. Аннотации типов в Python
  38. Операторы += в Python
  39. Реверс строки в Python
  40. Оператор Walrus в Python
  41. Автоматизация скриптов на AWS Lightsail.
  42. Сложные типы данных в Python
  43. Поиск наиболее частого элемента списке
  44. Простой калькулятор Python
  45. Работа с набором данных CIFAR10 в PyTorch
  46. Обработка исключений

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