Python Скрипты
Видео
final_video.mp4 · 1.2 МБ · нажмите — покажем
final_video.mp4 · 1.2 МБ · нажмите — покажем
⚡️ Python-код, который работает, но делает лишнее в 100 раз
Этот Python-код выглядит нормально.
Он работает.
Он проходит тесты.
Но делает лишнюю работу в десятки, а иногда и в сотни раз.
Самая частая причина — ты случайно превращаешь линейный алгоритм в квадратичный.
Типичный сценарий:
- есть список
- внутри цикла ты каждый раз делаешь in, count, index
- на маленьких данных всё быстро
- на реальных — приложение начинает «тормозить без причины»
Проблема в том, что:
- list — это O(n) для поиска
- поиск внутри цикла = O(n²)
- Python честно делает работу, которую ты ему попросил
Профи думают не «работает или нет», а сколько лишних операций выполняется.
Правильный подход:
- если нужны проверки принадлежности — используй set
- если считаешь элементы — используй dict или Counter
- если данные не меняются — предвычисляй один раз
Этот приём один из самых частых источников скрытых performance-багов в Python-коде.
# ❌ Плохо: O(n²)
users = ["alice", "bob", "carol", "dave"]
for u in users:
if u in users: # каждый раз полный проход списка
process(u)
# ✅ Хорошо: O(n)
users = ["alice", "bob", "carol", "dave"]
users_set = set(users)
for u in users:
if u in users_set:
process(u)
7 · 1.3K ·