Курс 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"
- Переворот списка в Python
- Обработка StopIteration в Python
- Исключение NotImplementedError
- Тест скорости набора текста на Python
- Форматирование строк с % в Python
- Функции-генераторы в Python
- Тестирование модели в PyTorch
- Атрибуты класса и экземпляра
- Структура данных словарь в Python
- Работа с типами данных в Python с помощью pydantic.
- Определение размера папок в Python
- Конкатенация строк с join() в Python
- Объединение словарей в Python
- Проверка условий в Python
- Управление мышью и клавиатурой с Pyautogui
- Использование *args
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Обратное распространение ошибки
- Установка и использование Logzero
- Отладка кода
- Обработка ошибок в Python
- Перетасовка списков в Python
- Создание даты из строки ISO
- Декораторы в Python
- Перемешивание списка с shuffle()
- Классы данных в Python
- Сравнение строк в Python
- Подписка на @SelectelNews
- Проверка на палиндром
- Использование эмодзи в Python
- Разделение строки с регулярными выражениями
- Сравнение объектов в Python
- Объединение списков в Python
- Регистрация на курсы SF Education
- Работа с *args и **kwargs в Python
- Использование подчеркивания в REPL
- Декораторы в Python
- Работа с Enum в Python3.
- Управление виртуальными окружениями в Python
- Работа с множествами в Python
- Функции высшего порядка в Python
- Печать месячного календаря
- Имена объектов в Python
- Метод join() для объединения элементов строки
- Анализ текста на русском языке с помощью Pymystem3
- Отладка в Python
- Python reversed() функция
- JMESPath в Python















