Курс 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. Использование модуля math
  2. Протокол управления контекстом
  3. Управление контекстом выполнения
  4. Метод join для объединения строк
  5. Список переменных в Python
  6. Объединение коллекций в Python
  7. Подсчет элементов с помощью Counter
  8. Сортировка слиянием
  9. Блок else в Python
  10. Копирование в Python
  11. Расширение операции побитового «и» в Python
  12. Оператор in для проверки наличия элемента
  13. Метод ne для сравнения объектов
  14. Непрерывная проверка в Python
  15. Возведение в квадрат с помощью itertools
  16. Извлечение чисел из текста
  17. Поиск наиболее частого элемента
  18. Метод get() в Python
  19. Подсчет элементов в Python
  20. Избегайте двойного подчеркивания
  21. Подсчет элементов в Python
  22. Удаление файлов в Python
  23. Абстракции словарей и множеств в Python
  24. Тернарный оператор в Python
  25. Проблема сравнения словарей
  26. Компиляция регулярных выражений
  27. Генераторы данных
  28. Конструктор в Python
  29. Подчеркивание в REPL
  30. Методы обработки строк в Python
  31. Работа с исключениями в Python
  32. Работа с дробями в Python
  33. Определение наиболее частого элемента с помощью collections.Counter
  34. Функция eval() в Python
  35. Хеши в Python
  36. Операторы увеличения и уменьшения переменной
  37. Работа со списками
  38. Конвертация изображений в PDF
  39. Расчет времени выполнения
  40. Использование type hints
  41. Удаление элементов из списка
  42. Измерение потребления памяти при сортировке
  43. Группировка элементов Python
  44. Проверка условий: all и any
  45. Декораторы в Python
  46. Ключевое слово global в Python
  47. Переменные в Python
  48. Измерение времени выполнения кода

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