Курс 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. Слияние словарей в Python 3.9
  3. Проверка типа данных
  4. Передача параметров в Python
  5. Оператор «моржа» (Walrus Operator)
  6. Beautiful Soup — извлечение данных из HTML
  7. Разбиение текста в Python
  8. Модуль math: константы π и e
  9. Объединение словарей в Python
  10. Выбор редактора кода.
  11. Создание GUI с Tkinter: Entry
  12. Работа с модулем cmath
  13. Умножение строк и списков
  14. Вложенные циклы в Python
  15. Измерение времени выполнения кода
  16. Список переменных с %who
  17. Изучение объектов с помощью dir()
  18. Декораторы с @wraps
  19. Python enumerate() функции
  20. Обновление шаблона base.html
  21. Python Enumerate
  22. Отправка POST запроса на сервер.
  23. Python Метод Union Множеств
  24. Повторение элементов списков
  25. Работа с эмодзи в Python
  26. Проверка запуска скрипта или импорта модуля
  27. Создание детектора плагиата
  28. Преобразование списков в словарь
  29. Декораторы в Python
  30. Объединение Python и Shell
  31. Работа с множествами в Python
  32. Логирование с Logzero
  33. Курс по дообучению ChatGPT
  34. Извлечение аудио из видео
  35. Распаковка элементов массива
  36. Обработка данных в Python
  37. Инверсия списка и строки
  38. Создание коллекций из выражения-генератора
  39. Разделение строки с помощью split()
  40. Метод join() для объединения элементов строки
  41. Преобразование Word в PDF с Spire.Doc
  42. Тип CodeType в Python.
  43. Конкатенация строк с join() в Python
  44. Функция reduce() из модуля functools
  45. Оформление текста в консоли с TermColor
  46. Хеширование паролей с использованием salt
  47. Функция с *args.

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