Курс 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. Обмен данными с asyncio.Queue
  2. Метод __getitem__ в Python
  3. Установка и использование TensorFlow
  4. Правила именования переменных
  5. Создание класса в Python
  6. Операции с датами в Python
  7. Форматирование строк с помощью f-строк
  8. Исключение NotImplementedError
  9. Экспорт данных в файл.
  10. Работа с изображениями Pillow
  11. Управление экспортом элементов
  12. Переворот списка в Python
  13. Получение идентификатора объекта в памяти
  14. Поиск наиболее частого элемента списке
  15. Управление User-Agent в Python
  16. Проверка вхождения подстроки
  17. Объединение списков в Python
  18. Декораторы в Python
  19. Оператор морж в Python 3.8
  20. Создание таблиц в терминале с PrettyTable
  21. Класс-оболочка для словарей
  22. Оператор деления для класса Rational
  23. Замена переменных в Python
  24. Удаление URL-адресов в Python
  25. Python и Монти Пайтон
  26. Установка и использование Logzero
  27. Порядок операций в Python
  28. Аргумент по умолчанию
  29. Работа с NumPy
  30. Форматирование строк в Python
  31. Получение имени функции с помощью inspect
  32. Возвращение нескольких значений
  33. Введение в Python
  34. Использование super() в Python
  35. Импорт и использование модулей в Python
  36. Оператор += в Python
  37. Блок else в циклах Python
  38. Структура данных deque в Python
  39. Сравнение def и lambda функций в Python
  40. Упрощение условных выражений с тернарным оператором
  41. Сравнение def и lambda-функций
  42. Оператор += для объединения строк
  43. Основы слова
  44. Генераторные выражения и islice.
  45. Python Метод Union Множеств

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