Курс 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. Метод __ixor__ для побитового исключающего ИЛИ
  2. Отделение звука от видео
  3. Мониторинг работы программы Py-spy
  4. Генератор надежных паролей
  5. Простой калькулятор Python
  6. Отображение графиков в Jupyter с Matplotlib
  7. Обработка ошибок в Python
  8. Поиск элементов BeautifulSoup
  9. Значения по умолчанию в Python
  10. Блок try…finally в Python
  11. Библиотека itertools: объединение списков
  12. Отправка HTTP-запросов в Python
  13. Импорт классов из другого файла
  14. Метод rrshift для пользовательских объектов
  15. Преобразование списков в словарь
  16. Оператор match в Python
  17. Метод сравнения объектов в Python
  18. Оптимизация памяти в Python
  19. Python: изменяемые и неизменяемые коллекции
  20. Условные выражения в Python
  21. Форматирование данных с помощью pprint
  22. Добавление Progressbar в Python
  23. Ускоренный импорт библиотек
  24. Функция pow() — возвести число в степень
  25. Методы Python для работы с данными
  26. Импорт модулей в Python 3.12
  27. Создание новых списков через list comprehensions
  28. Вставка переменных в шаблоны Flask
  29. Создание графиков в терминале
  30. Замыкания в Python
  31. Enum в Python: создание и использование перечислений
  32. Работа с PosixPath() в Python
  33. Конкатенация строк с помощью join()
  34. Метод bool() в Python
  35. Python-dateutil — работа с датами
  36. Замена элементов в списке с помощью генераторов списков
  37. Скрытие вывода данных
  38. Кортеж в Python: создание и использование
  39. Рекурсия для обращения строки
  40. Создание детектора плагиата
  41. Перемещение и удаление файлов в Python
  42. inspect в Python: анализ кода
  43. Python Метод del.

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