Курс 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"
- Метод __ixor__ для побитового исключающего ИЛИ
- Отделение звука от видео
- Мониторинг работы программы Py-spy
- Генератор надежных паролей
- Простой калькулятор Python
- Отображение графиков в Jupyter с Matplotlib
- Обработка ошибок в Python
- Поиск элементов BeautifulSoup
- Значения по умолчанию в Python
- Блок try…finally в Python
- Библиотека itertools: объединение списков
- Отправка HTTP-запросов в Python
- Импорт классов из другого файла
- Метод rrshift для пользовательских объектов
- Преобразование списков в словарь
- Оператор match в Python
- Метод сравнения объектов в Python
- Оптимизация памяти в Python
- Python: изменяемые и неизменяемые коллекции
- Условные выражения в Python
- Форматирование данных с помощью pprint
- Добавление Progressbar в Python
- Ускоренный импорт библиотек
- Функция pow() — возвести число в степень
- Методы Python для работы с данными
- Импорт модулей в Python 3.12
- Создание новых списков через list comprehensions
- Вставка переменных в шаблоны Flask
- Создание графиков в терминале
- Замыкания в Python
- Enum в Python: создание и использование перечислений
- Работа с PosixPath() в Python
- Конкатенация строк с помощью join()
- Метод bool() в Python
- Python-dateutil — работа с датами
- Замена элементов в списке с помощью генераторов списков
- Скрытие вывода данных
- Кортеж в Python: создание и использование
- Рекурсия для обращения строки
- Создание детектора плагиата
- Перемещение и удаление файлов в Python
- inspect в Python: анализ кода
- Python Метод del.















