Курс Python → Генераторы в Python
Генераторы в Python — это удобный способ создания последовательностей значений без необходимости хранить их все сразу в памяти. Они позволяют генерировать значения по мере необходимости, что экономит ресурсы и увеличивает производительность программы. Для создания генератора используется ключевое слово yield, которое указывает на точку возврата значения и временную остановку выполнения функции.
Преимущества использования генераторов становятся особенно заметными при работе с большими объемами данных или при генерации бесконечных последовательностей. Например, нам нужно сгенерировать квадраты чисел от 0 до 9. Мы можем создать генератор, который будет выглядеть следующим образом:
def squares_generator():
for i in range(10):
yield i**2
squares = squares_generator()
for square in squares:
print(square)
В данном примере функция squares_generator() является генератором, который при каждой итерации цикла for возвращает квадрат числа i. Таким образом, мы можем получить последовательность квадратов чисел от 0 до 9, не храня все значения в памяти одновременно.
Использование генераторов позволяет сократить объем потребляемой памяти и улучшить производительность программы. Кроме того, генераторы обеспечивают ленивое вычисление значений, что позволяет эффективно работать с большими объемами данных. При необходимости можно легко изменить логику генерации значений, добавив новые условия или модифицируя существующие.
Другие уроки курса "Python"
- Модуль xkcd: загрузка комиксов
- Комментарии в Python
- Python Метод sleep() из time
- Установка random seed в Python
- Хэш-функции и метод цепочек
- Возврат значений из генератора
- Поиск уникальных и повторяющихся элементов
- Оптимизация гиперпараметров в Python
- Работа с атрибутом dict
- Работа с классами данных
- Любовь к Python
- Создание уникального проекта
- Введение в PyTorch
- Печать в одной строке
- Поиск подстроки в строке
- Руководство по использованию Colorama
- Разделение строки с регулярными выражениями
- Срез списка в Python
- Разделение строк в Python
- Обработка аргументов Python
- Генератор списка в Python
- Pillow: работа с изображениями
- Поиск повторов в списке
- Пропуск строк в файле с itertools
- Удаление элементов во время итерации
- Переопределение унарных операторов
- Область видимости переменных
- Оператор space-invader
- Оптимизация создания строк
- Метод append() для списка
- Логирование с Logzero
- Функция format() в Python
- Дизассемблирование Python кода
- Создание лямбда-функций
- Оптимизация памяти с slots
- Обработка исключений
- Непрерывная проверка в Python
- Обработка элементов в Python
- Поиск подстроки в строке
- Проверка существования переменной с оператором :=
- Сериализация объектов в Python
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Философия Python
- Копирование объектов в Python
- Реализация операции -= для пользовательского класса
- Закрытие файла в Python
- Работа с модулем bisect















