Курс 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"
- Определение относительного пути
- Метод eq для сравнения объектов
- Метод ipow для возведения в степень
- Анализ кода — Python
- Установка и загрузка Instaloader
- Блок else в Python
- Python Метод del.
- Множественное назначение в Python
- Метод invert для побитового отрицания
- Разделение строки с помощью split()
- Многопоточность в Python
- ROT13 Шифр Цезаря в Python
- Функциональное программирование в Python
- Удаление символа из строки
- Модуль xkcd: загрузка комиксов
- Импорт модулей и пакетов в Python
- Копирование словарей и списков в Python
- Создание именованных кортежей в Python
- Python: Splat-оператор и splatty-splat
- Замер времени выполнения кода
- Функция reduce() в Python
- Проверка условий: all и any
- Функция enumerate в Python
- Множественные конструкторы в Python
- Заказ карты Тинькофф Black
- Проверка типов с помощью isinstance
- Функция eval() в Python
- Python 3.12: переиспользование кавычек
- Работа с NumPy
- Асинхронное программирование с asyncio
- Progress с библиотекой tqdm
- Обработка ошибок в JSON данных
- Роль ключевого слова self
- Определение имен функций
- Логирование с Logzero
- Вложенные генераторы в Python
- Функция enumerate() в Python
- Карта бомбоубежищ в Москве и Питере
- Взаимодействие с sys
- Установка переменной среды в Python
- Метод title() в Python
- Представление бесконечности в Python
- Сравнение def и lambda в Python
- Отладка утечек памяти в Python















