Курс 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
- Функции any() и all() в Python
- Склеивание строк через метод join()
- Декораторы для регистрации функций
- Управление мышью и клавиатурой с Pyautogui
- Python Аргументы по умолчанию
- Удаление элементов из списка в Python
- Работа со строками в Python
- Принципы программирования
- Декораторы в Python
- Поиск уникальных и повторяющихся элементов
- Работа с контекстным менеджером Pool
- Отслеживание прогресса с tqdm
- Генерация тестовых данных с factory_boy
- Возврат нескольких значений из функции
- Определение локальных переменных в Python
- Генераторы в Python
- Преобразование числа в список цифр
- Объединение словарей в Python
- Оператор умножения для вектора
- Поиск простых чисел
- Скачать видео с YouTube
- Объединение объектов в Python
- Вывод переменной и строки в Python
- Непрерывная проверка в Python
- Docstring в Python
- Игра «Угадывание чисел»
- Замена символов в строке
- None в Python: использование и особенности
- Модуль itertools: эффективная работа с итераторами
- Считывание бинарного файла в Python
- Создание коллекций из выражения-генератора
- Работа с переменными в Python
- Работа с файловой системой в Python
- Отладка производительности Python
- Итерация по итерируемым объектам
- Декораторы с аргументами
- Метод difference_update() — разность множеств
- Метод __index__ в Python
- Преобразование в float
- Разделение строки с помощью re.split()
- Обработка ошибок ввода данных
- Сохранение и загрузка модели в PyTorch
- Работа с геоданными с помощью geopy
- Слияние словарей в Python 3.9
- Создание директории в Python















