Курс 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 и Юникод: работа с цифрами
- Слияние словарей в Python 3.9
- Проверка типа данных
- Передача параметров в Python
- Оператор «моржа» (Walrus Operator)
- Beautiful Soup — извлечение данных из HTML
- Разбиение текста в Python
- Модуль math: константы π и e
- Объединение словарей в Python
- Выбор редактора кода.
- Создание GUI с Tkinter: Entry
- Работа с модулем cmath
- Умножение строк и списков
- Вложенные циклы в Python
- Измерение времени выполнения кода
- Список переменных с %who
- Изучение объектов с помощью dir()
- Декораторы с @wraps
- Python enumerate() функции
- Обновление шаблона base.html
- Python Enumerate
- Отправка POST запроса на сервер.
- Python Метод Union Множеств
- Повторение элементов списков
- Работа с эмодзи в Python
- Проверка запуска скрипта или импорта модуля
- Создание детектора плагиата
- Преобразование списков в словарь
- Декораторы в Python
- Объединение Python и Shell
- Работа с множествами в Python
- Логирование с Logzero
- Курс по дообучению ChatGPT
- Извлечение аудио из видео
- Распаковка элементов массива
- Обработка данных в Python
- Инверсия списка и строки
- Создание коллекций из выражения-генератора
- Разделение строки с помощью split()
- Метод join() для объединения элементов строки
- Преобразование Word в PDF с Spire.Doc
- Тип CodeType в Python.
- Конкатенация строк с join() в Python
- Функция reduce() из модуля functools
- Оформление текста в консоли с TermColor
- Хеширование паролей с использованием salt
- Функция с *args.















