Курс 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. Lambda-функция в Python: использование с map() и sum()
  2. f-строки в формате строк
  3. Модуль functools в Python
  4. Библиотека funcy: удобные утилиты
  5. Выражения-генераторы в Python
  6. Атрибуты массивов в Numpy
  7. Работа с датой и временем в Python
  8. Установка и загрузка Instaloader
  9. Работа с itertools
  10. Лямбда-функции для min/max
  11. Управление виртуальными окружениями в Python
  12. Работа с датами в Python
  13. Обработка элементов в Python
  14. Инверсия списка и строки в Python
  15. Структура строк в Python
  16. PrettyTable: создание таблицы
  17. Работа с контекстными переменными
  18. Каналы Senior: Python, Java, Frontend, SQL, C++
  19. Аннотации типов в Python
  20. Сортировка с помощью параметра key
  21. Итерация по копии коллекции
  22. Основы Python
  23. Множественные конструкторы в Python
  24. Тест скорости набора текста на Python
  25. Структурирование именованных констант
  26. Транспонирование матрицы в Python
  27. Оптимизация гиперпараметров в Python
  28. Копирование списков в Python
  29. Регистрация на хакатоне
  30. Перевод текста с Python Translator
  31. Удаление символов новой строки в Python.
  32. Установка и использование Virtualenv
  33. Создание итератора
  34. Скачать видео с YouTube
  35. Класс UserDict: дополнительная функциональность
  36. Создание пользовательской коллекции в Python
  37. Избегайте изменяемых аргументов
  38. Установка Git и AWS CLI
  39. Резервирование символов в Python
  40. Срезы в Python
  41. Имена объектов в Python
  42. Работа с контекстным менеджером Pool
  43. Преобразование списка в словарь через генератор
  44. Автоматизация с Python
  45. Возврат нескольких значений из функции
  46. Строковое представление объектов
  47. Основные методы NumPy
  48. Метод Enumerate() для списков

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