Курс 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"
- Оператор in в Python
- Поиск файлов по шаблону
- Срез в Python
- Перебор элементов списка в Python
- Бесконечные списки в Python
- Блок else в обработке исключений
- Проверка кортежей.
- Избегание циклических зависимостей классов в Python
- Преобразование символов в нижний регистр
- Упрощение условных выражений с тернарным оператором
- Заказ карты Тинькофф Black
- Объединение словарей в Python
- Разница между датами
- Генерация случайных чисел в Python
- Работа с YAML в Python: PyYAML.
- Функции классификации комплексных чисел
- Отправка поздравлений по дню рождения
- Получение обратного списка чисел
- Чтение и запись TOML-конфигов
- Импорт модулей в Python 3.12
- Лимиты на ресурсы Python
- Оператор Walrus: правильное использование
- OrderedDict — упорядоченный словарь
- Метод get() для словарей
- Поиск анаграмм с Counter
- Динамическая типизация в Python
- Форматирование строк с помощью f-строк
- Обработка исключений
- Установка Python — Простое руководство
- Контроль точности вывода чисел
- Метод __float__ в Python
- IPython и Jupyter Notebook: руководство
- Работа с f-строками 2.0
- Установка Home Assistant
- Копирование и вставка текста в Python
- Модуль xkcd: добавление юмора в Python
- Метод join() для объединения строк
- Оператор continue в Python
- Отправка POST запроса на сервер.
- Просмотр атрибутов и методов класса
- Создание списков в Python
- Кортеж в Python: создание и использование
- Списки в Python
- Присоединение элементов коллекции
- Рекурсия для обращения строки















