Курс 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. Настройка логгера Logzero
  2. Атрибуты массивов в Numpy
  3. Удаление элементов во время итерации
  4. Преобразование документов в PDF с помощью Spire.Office
  5. TypedDict для kwargs в Python 3.12
  6. Проверка однородности элементов списка
  7. Деление в Python
  8. Функция product() в Python
  9. Магические методы в Python
  10. Управление контекстом выполнения
  11. Управление виртуальными средами в Python
  12. Функция reduce() в Python
  13. Работа с URL-адресами в Python
  14. Подсчет часто встречающихся элементов
  15. Проверка на истинность объектов в Python
  16. Регулярные выражения: метод match
  17. Переопределение метода delitem в Python
  18. Хранение переменных в словаре.
  19. Работа с кортежами в Python
  20. Моржовый оператор в Python 3.8
  21. Работа с парами ключ-значение
  22. globals и locals
  23. Многострочные комментарии в Python
  24. Управление импортом в Python
  25. Извлечение аудио из видео
  26. Создание новой даты в Python
  27. Генерация резюме в Gensim
  28. Возврат значений из генератора
  29. Python defaultdict добавление ключа
  30. Функция count() в Python
  31. Удаление элемента из списка в Python
  32. Создание генераторов
  33. Функции с необязательными аргументами
  34. Метод join() для объединения строк
  35. Создание вкладок с TKinter
  36. Создание новых списков в Python
  37. Обработка исключений в Python
  38. Группы исключений в Python
  39. Скачать видео с YouTube
  40. Обход элементов в Python
  41. Печать списка с помощью метода join
  42. Декоратор для группы пользователей в Django
  43. Отправка HTTP-запросов в Python
  44. Игра «Камень, ножницы, бумага» — Python
  45. Создание виртуальной среды
  46. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC

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