Курс 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
  2. Перехват исключений в Python
  3. Структуры данных в Python
  4. Преобразование чисел в восьмеричную строку
  5. Множественное присваивание в Python
  6. Лямбда-функции для min/max
  7. Непрерывная проверка в Python
  8. Участие в LP стейкинге Waves
  9. Очистка списка от False, None, 0, «»
  10. Работа с файлами в Python
  11. Многострочные комментарии в Python
  12. Фильтрация списка чисел
  13. Работа с изображениями Pillow
  14. Генератор списка с условием if
  15. Циклы в Python
  16. Порядок операций в Python
  17. Удаление дубликатов из списка с помощью dict.fromkeys
  18. Python 3.12: переиспользование кавычек
  19. Метод radd для пользовательских чисел
  20. Скрытие вывода данных
  21. Установка Git и AWS CLI
  22. Группировка элементов в словарь
  23. Установка и использование Telegram API в Python
  24. Модуль math: константы π и e
  25. Python Метод sleep() из time
  26. Лямбда-функции в Python
  27. Работа с временем в Python
  28. Функции map() и reduce() в Python
  29. Инверсия списков и строк в Python
  30. Освобождение памяти в Python
  31. Нарезка списков в Python
  32. Вычисление разности множеств в Python
  33. Получение идентификатора объекта в памяти
  34. Тестирование функции сложения
  35. Объединение словарей в Python
  36. Игра «Угадывание чисел»
  37. Объединение строк с помощью метода join
  38. Управление ресурсами с контекстными менеджерами
  39. Делегирование в Python
  40. Удаление файлов в Python
  41. Измерение времени выполнения кода в Python
  42. Генератор чисел Фибоначчи
  43. Enum в Python
  44. Поиск уникальных элементов строкой в Python
  45. Подписка на @SelectelNews

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