Курс 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. Обработка StopIteration в Python
  3. Исключение NotImplementedError
  4. Тест скорости набора текста на Python
  5. Форматирование строк с % в Python
  6. Функции-генераторы в Python
  7. Тестирование модели в PyTorch
  8. Атрибуты класса и экземпляра
  9. Структура данных словарь в Python
  10. Работа с типами данных в Python с помощью pydantic.
  11. Определение размера папок в Python
  12. Конкатенация строк с join() в Python
  13. Объединение словарей в Python
  14. Проверка условий в Python
  15. Управление мышью и клавиатурой с Pyautogui
  16. Использование *args
  17. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  18. Обратное распространение ошибки
  19. Установка и использование Logzero
  20. Отладка кода
  21. Обработка ошибок в Python
  22. Перетасовка списков в Python
  23. Создание даты из строки ISO
  24. Декораторы в Python
  25. Перемешивание списка с shuffle()
  26. Классы данных в Python
  27. Сравнение строк в Python
  28. Подписка на @SelectelNews
  29. Проверка на палиндром
  30. Использование эмодзи в Python
  31. Разделение строки с регулярными выражениями
  32. Сравнение объектов в Python
  33. Объединение списков в Python
  34. Регистрация на курсы SF Education
  35. Работа с *args и **kwargs в Python
  36. Использование подчеркивания в REPL
  37. Декораторы в Python
  38. Работа с Enum в Python3.
  39. Управление виртуальными окружениями в Python
  40. Работа с множествами в Python
  41. Функции высшего порядка в Python
  42. Печать месячного календаря
  43. Имена объектов в Python
  44. Метод join() для объединения элементов строки
  45. Анализ текста на русском языке с помощью Pymystem3
  46. Отладка в Python
  47. Python reversed() функция
  48. JMESPath в Python

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