Курс 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"
- Оператор == в Python
- Анонимные функции в Python
- Фильтрация списка от «ложных» значений
- Просмотр атрибутов и методов класса
- Использование метода lower()
- Особенности множеств в Python
- Работа с контекстным менеджером Pool
- Отладка регулярных выражений в Python
- Установка и использование emoji
- Объединение списков в Python
- Преобразование списка в словарь через генератор
- Переменные в Python
- Проблема с изменяемыми аргументами
- Игра «Камень, ножницы, бумага» — Python
- Декораторы в Python
- История Python
- Python: цикл for и оператор присваивания
- Декодирование строк в Python
- Объединение списков с использованием itertools.chain
- Документирование функций в Python
- Работа с модулем random
- Измерение времени выполнения
- Lambda-функция в Python: использование с map() и sum()
- Numpy: объединение массивов
- Списки в Python: основы
- Работа с SQLite в Python
- Активация Matplotlib в Jupyter
- Транспонирование матрицы в Python
- Измерение времени выполнения кода
- Вывод переменной и строки в Python
- Изменение элемента списка
- Цепные операции в Python
- Просмотр атрибутов и методов класса
- Имена объектов в Python
- Конкатенация строковых литералов
- Профилирование данных с Pandas.
- Enum в Python
- Преобразование строк в числа с плавающей запятой
- Замена переменных в Python
- Импорт модулей и пакетов в Python
- Возврат нескольких значений
- Разработка Telegram-ботов
- Определение функций с необязательными аргументами
- Функции высшего порядка в Python
- Magic Commands — улучшение работы с Python
- Тайное преобразование типа ключа
- Операции с массивами в NumPy
- Поиск HTML-элементов с BeautifulSoup















