Курс 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"
- Генерация ключей RSA
- ChainMap.new_child() — добавление нового словаря
- Извлечение новостей с помощью newspaper3k
- Логирование с Logzero
- Преобразование списка в словарь через генератор
- Структуры данных в Python
- Поиск наиболее частого элемента
- Динамическая типизация в Python
- Генераторы в Python
- Хеши в Python
- Секреты Python
- Контекстный менеджер в Python
- Работа с файлами в Python
- Кортежи в Python: особенности и преимущества
- Печать месячного календаря
- Основы Python
- Нарезка списков в Python
- Оператор Walrus в Python
- Объединение словарей в Python
- Запуск внешнего кода в Jupyter
- Метод is_absolute() для PurePath
- Ветвление выражения в Python
- EMOT преобразование эмодзи в текст
- Справка по импортированным модулям
- Подписка на SelectelNews в Twitter
- Добавление элемента к кортежу
- Автоматизация действий с Pyautogui
- PUT запрос для обновления данных
- Итерация по итерируемым объектам
- Цикл for в Python
- Обработка ошибок в JSON данных
- Изменение элемента списка
- Нахождение максимального значения и его индекса в списке
- Управление асинхронными задачами на Python.
- Оператор «or» в Python
- Методы и функции в Python
- Замена переменных в Python
- Основы работы со строками в Python
- Сложение матриц в NumPy
- Pillow: работа с изображениями
- Работа с библиотекой requests
- Назначение максимального и минимального значения переменной в Python.
- Метод pop() списка
- Основы работы со списками
- Избегайте ошибку FileNotFoundError
- Строковое представление объектов















