Курс 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. Функция enumerate() в Python
  2. Измерение времени выполнения в Python
  3. Добавление вложенных списков
  4. Проверка типов с использованием isinstance
  5. Обратный список чисел
  6. Управление фоновыми задачами в Python
  7. Возврат нескольких значений
  8. Декораторы в Python
  9. Выключение компьютера с помощью Python
  10. Асинхронное программирование с asyncio
  11. Метод hash в Python
  12. Любовь к Python
  13. Метод __ilshift__ для битового сдвига влево
  14. Отношения подклассов в Python
  15. Счетчик ссылок в Python
  16. Динамические маршруты во Flask
  17. Генерация QR-кодов с библиотекой qrcode
  18. Модуль subprocess: запуск внешних команд
  19. Многострочные комментарии в Python
  20. Создание множества в Python
  21. Определение основы слова с showballstemmer
  22. Проверка ввода с помощью isdigit
  23. Анализ кода — Python
  24. Python 3.12: переиспользование кавычек
  25. Подсчет элементов с помощью Counter
  26. Нан-рефлексивность в Python
  27. Хранение данных
  28. Именование переменных в Python
  29. Метод __iand__ для пользовательских классов
  30. Метод matmul для умножения матриц
  31. Объявление переменных в Python
  32. Отладчик pdb: начало работы
  33. Удаление символа из строки
  34. Вывод баннеров
  35. Установка и использование howdoi
  36. Вывод символов строки в Python
  37. Аргумент по умолчанию
  38. Метод __int__ в Python
  39. Работа со строками в Python.
  40. Обезопасьте ввод данных
  41. Гибкие функции Python
  42. Подробная информация о %pinfo
  43. Оформление кода на Python
  44. Генераторы в Python
  45. Управление User-Agent в Python

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