Курс 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. Символ подчеркивания в Python
  2. Defaultdict в Python
  3. Извлечение аудио из видео
  4. Работа с часовыми поясами в Python.
  5. Измерение времени выполнения
  6. Замена элементов в списке с помощью генераторов списков
  7. Lambda Functions in Python
  8. Удаление ключей из словаря
  9. Магические методы в Python
  10. Методы работы со списками
  11. Применение функции к списку
  12. Получение списка кортежей из словаря
  13. Создание новой даты в Python
  14. Хранение данных с помощью dataclasses
  15. Разделение строки с помощью split()
  16. Генераторы в Python
  17. Форматирование строк в Python
  18. Приближение чисел в Python
  19. Использование super() в Python
  20. Установка и использование модуля «howdoi»
  21. Основы Python за 14 дней
  22. Цикл while в Python
  23. f-строки в формате строк
  24. Основные методы NumPy
  25. Поиск индекса элемента
  26. Установка Home Assistant
  27. Метод get() в Python
  28. Проверка типа данных
  29. Многоточие в Python
  30. Создание генераторов в Python
  31. Подсказки при вводе данных в Python
  32. Навыки Python: строки, типы данных
  33. Функция __init__ в Python
  34. Декораторы в Python
  35. Логирование с Logzero
  36. Модуль inspect: получение информации о объектах
  37. Комментарии в Python
  38. Уникальные значения из списка
  39. Работа со списками
  40. Лямбда-функции в Python
  41. Конвертация коллекций в Python.
  42. Списки: объединение, изменение
  43. Сравнение объектов в Python
  44. Работа с комплексными числами в Python
  45. Форматирование заголовков в Python
  46. Определение основы слова с showballstemmer

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