Курс 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. Получение размера объекта с sys.getsizeof()
  2. Модуль inspect
  3. Избегание циклических зависимостей классов в Python
  4. Работа с набором данных CIFAR10 в PyTorch
  5. Расширение операции побитового «и» в Python
  6. Обработка исключений с блоком else
  7. Извлечение статей с newspaper3k
  8. Печать месячного календаря
  9. Просмотр файла в Jupyter Noteboo
  10. Разность множеств
  11. Переименование файлов в Python
  12. kwargs в Python
  13. Операции с матрицами в Python
  14. Повторение элементов в Python
  15. Курс по дообучению ChatGPT
  16. Методы HTTP запросов в Flask
  17. Метод pop() списка
  18. Списки в Python: синтаксис представления
  19. Прокачанный трейсинг ошибок
  20. Сортировка HTML по CSS-селектору
  21. Создание и операции с дробями
  22. Запуск внешнего кода в Jupyter
  23. Установка и использование Python-dateutil
  24. Установка random seed в Python
  25. Форматирование строк в Python
  26. Преобразование Excel в PDF с Spire.XLS
  27. Функции в Python
  28. Удаление ссылок в Python
  29. Генераторы в Python
  30. Функция reduce() из модуля functools
  31. Docstring в Python
  32. Создание списков в Python
  33. Тестирование времени с Freezegun
  34. Функции map, filter и reduce
  35. Управление IP-адресами через прокси
  36. Progress с библиотекой tqdm
  37. Оператор zip в Python
  38. Работа с пакетами
  39. Python Аргументы по умолчанию
  40. Добавление цвета в консоли
  41. Преобразование списка в словарь через генератор
  42. Генератор данных в Keras
  43. Глобальные переменные в Python
  44. Работа с дробями в Python
  45. Сортировка и разворот списка
  46. Мониторинг работы программы Py-spy
  47. Howdoi — получение ответов из терминала
  48. Извлечение новостей с помощью newspaper3k
  49. Работа с каталогами в Python

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