Веб-версияОткрыть в Telegram

ПостОптимизация кода с помощью генераторов в Python

31 августа 2026
Б
Библиотека Python разработчика | Книги по питону
Оптимизация кода с помощью генераторов в Python Сегодня хочу показать вам, как использование генераторов может сделать ваш код быстрее, экономнее по памяти и элегантнее. Что такое генераторы? Генераторы — это функции, которые используют yield вместо return. Они не возвращают сразу все значения, а запоминают своё состояние и отдают результат по мере необходимости. Это особенно полезно при обработке больших объемов данных, так как позволяет не загружать всю информацию в память сразу. Пример: экономия памяти Допустим, нам нужно обработать миллион чисел и взять из них только четные. Обычный способ: def get_even_numbers(n): result = [] for i in range(n): if i % 2 == 0: result.append(i) return result numbers = get_even_numbers(10**6) print(len(numbers)) # 500000 Такой код загружает в память весь список, что может быть проблемой при больших данных. А теперь переделаем на генератор: def get_even_numbers_gen(n): for i in range(n): if i % 2 == 0: yield i numbers = get_even_numbers_gen(10**6) print(sum(1 for _ in numbers)) # 500000 Здесь список не создается, а элементы выдаются по одному. Это экономит память и ускоряет обработку! Где применять? ✔️ Чтение больших файлов построчно (yield line) ✔️ Работа с потоками данных ✔️ Генерация последовательностей без создания списков 📲 Мы в MAX 👉@BookPython
8 · 1.1K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуМодуль io предоставляет два типа файловых объектов в памяти. Такие объекты могут быть полезны для работы с интерфейсами, которые поддерживают только файлы, без ББиблиотека Python разработчика | Книги по питонуPython поддерживает несколько способов запуска скрипта. Обычный вариант — это python foo.py; в этом случае foo.py просто выполняется. Однако, можно также исполь
это сообщение
ББиблиотека Python разработчика | Книги по питонуОптимизация SQL-запросов в Django ORM Сегодня я покажу вам, как оптимизировать SQL-запросы в Django ORM, чтобы ваш код работал быстрее и эффективнее. Если ваш DББиблиотека Python разработчика | Книги по питонуStructured Concurrency в Python 3.11+ (TaskGroup vs Gather) Если вы до сих пор используете asyncio.gather() для запуска конкурентных задач, вы, вероятно, теряет
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
18 046подписчиков901средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем