Курс 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. Генерация ключей RSA
  2. ChainMap.new_child() — добавление нового словаря
  3. Извлечение новостей с помощью newspaper3k
  4. Логирование с Logzero
  5. Преобразование списка в словарь через генератор
  6. Структуры данных в Python
  7. Поиск наиболее частого элемента
  8. Динамическая типизация в Python
  9. Генераторы в Python
  10. Хеши в Python
  11. Секреты Python
  12. Контекстный менеджер в Python
  13. Работа с файлами в Python
  14. Кортежи в Python: особенности и преимущества
  15. Печать месячного календаря
  16. Основы Python
  17. Нарезка списков в Python
  18. Оператор Walrus в Python
  19. Объединение словарей в Python
  20. Запуск внешнего кода в Jupyter
  21. Метод is_absolute() для PurePath
  22. Ветвление выражения в Python
  23. EMOT преобразование эмодзи в текст
  24. Справка по импортированным модулям
  25. Подписка на SelectelNews в Twitter
  26. Добавление элемента к кортежу
  27. Автоматизация действий с Pyautogui
  28. PUT запрос для обновления данных
  29. Итерация по итерируемым объектам
  30. Цикл for в Python
  31. Обработка ошибок в JSON данных
  32. Изменение элемента списка
  33. Нахождение максимального значения и его индекса в списке
  34. Управление асинхронными задачами на Python.
  35. Оператор «or» в Python
  36. Методы и функции в Python
  37. Замена переменных в Python
  38. Основы работы со строками в Python
  39. Сложение матриц в NumPy
  40. Pillow: работа с изображениями
  41. Работа с библиотекой requests
  42. Назначение максимального и минимального значения переменной в Python.
  43. Метод pop() списка
  44. Основы работы со списками
  45. Избегайте ошибку FileNotFoundError
  46. Строковое представление объектов

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