Курс 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 3.9
  2. Методы в Python
  3. Установка и использование Virtualenv
  4. Отладка в командной строке
  5. Перемещение и удаление файлов в Python
  6. Разрешение имен в Python
  7. Блок else в циклах.
  8. Настройка логгера Logzero
  9. Оператор «is not» в Python
  10. Метод count() для списка
  11. Передача аргументов в Python
  12. Создание таблиц в терминале с PrettyTable
  13. Проверка индексов коллекции
  14. Метод join() для объединения элементов
  15. Лямбда-функции для min/max
  16. Использование обратной косой черты в f-строках
  17. Получение текущей директории
  18. Преобразование регистра символов
  19. Управление сессиями в Python
  20. Оператор walrus в Python
  21. Функция format() в Python
  22. Работа с deque в Python
  23. Перевернуть список в Python
  24. Управление IP-адресами через прокси
  25. Расчет времени выполнения кода
  26. Экспорт внешнего файла с помощью writefile
  27. Проверка существования переменной с оператором :=
  28. Управление контекстом выполнения
  29. Работа с itertools
  30. Метод __float__ в Python
  31. Python groupby() из itertools: работа с повторяющимися элементами
  32. Транспонирование 2D-массива с помощью zip
  33. Создание новых списков в Python
  34. Сортировка и обратный порядок
  35. Управление браузером с Selenium
  36. Переименование файлов в Python
  37. Компиляция регулярных выражений
  38. Генерация случайных чисел Python
  39. Избегайте ошибку FileNotFoundError
  40. Генераторы в Python
  41. Асинхронное выполнение задач в Python
  42. Преобразование регистра строк
  43. Блок try-except-else
  44. Определение индекса элемента списка
  45. Структуры данных в Python

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