Курс 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"
- Аргументы *args и **kwargs
- Объединение словарей в Python
- Мощь вложенных функций в Python
- Преобразование данных в Python
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Тип CodeType в Python.
- Импорт объектов из модулей
- Проверка однородности элементов списка
- Создание вкладок с TKinter
- Методы сравнения множеств
- Метод ior для битовых операций
- Обработка ошибки IndexError
- Отладка в командной строке
- Объединение списков в Python
- Функции с необязательными аргументами
- Оператор zip в Python
- Преобразование чисел в слова
- Объединение коллекций в Python
- Сериализация и десериализация объектов
- Создание копии списка в Python
- Обмен значений переменных в Python
- Инвертирование словаря
- Работа с изменяемыми коллекциями
- Генераторные функции в Python
- Получение списка кортежей из словаря
- Инициализация объекта
- Управление сессиями в Python
- Копирование в Python
- Нахождение максимального значения и его индекса в списке
- Генераторы и сеты в Python
- Просмотр внешних файлов в %pycat
- Удаление ссылок в Python
- Изменяемые и неизменяемые объекты
- Руководство по использованию Colorama
- Псевдонимы в Python
- Операции с комплексными числами
- Расширение операции побитового «и» в Python
- Оператор @ для умножения матриц
- Поиск подстроки в строке
- Преобразование числа в восьмеричную строку
- Анонимные функции в Python
- Преобразование чисел в Python
- Тестирование с unittest
- Сравнение def и lambda в Python
- Оператор += в Python
- Методы classmethod и staticmethod
- Создание задания в Cron















