Курс 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. Оператор in в Python
  2. Поиск файлов по шаблону
  3. Срез в Python
  4. Перебор элементов списка в Python
  5. Бесконечные списки в Python
  6. Блок else в обработке исключений
  7. Проверка кортежей.
  8. Избегание циклических зависимостей классов в Python
  9. Преобразование символов в нижний регистр
  10. Упрощение условных выражений с тернарным оператором
  11. Заказ карты Тинькофф Black
  12. Объединение словарей в Python
  13. Разница между датами
  14. Генерация случайных чисел в Python
  15. Работа с YAML в Python: PyYAML.
  16. Функции классификации комплексных чисел
  17. Отправка поздравлений по дню рождения
  18. Получение обратного списка чисел
  19. Чтение и запись TOML-конфигов
  20. Импорт модулей в Python 3.12
  21. Лимиты на ресурсы Python
  22. Оператор Walrus: правильное использование
  23. OrderedDict — упорядоченный словарь
  24. Метод get() для словарей
  25. Поиск анаграмм с Counter
  26. Динамическая типизация в Python
  27. Форматирование строк с помощью f-строк
  28. Обработка исключений
  29. Установка Python — Простое руководство
  30. Контроль точности вывода чисел
  31. Метод __float__ в Python
  32. IPython и Jupyter Notebook: руководство
  33. Работа с f-строками 2.0
  34. Установка Home Assistant
  35. Копирование и вставка текста в Python
  36. Модуль xkcd: добавление юмора в Python
  37. Метод join() для объединения строк
  38. Оператор continue в Python
  39. Отправка POST запроса на сервер.
  40. Просмотр атрибутов и методов класса
  41. Создание списков в Python
  42. Кортеж в Python: создание и использование
  43. Списки в Python
  44. Присоединение элементов коллекции
  45. Рекурсия для обращения строки

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