TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #1410 2.19K
⚡️ 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)
  • 🔥 10
  • ❤ 2
  • 🥰 2
More from @python_job_interview
  1. Sep 19, 2026✔️ Кто подключился к вашей сети? NetAlertX обнаруживает устройства и уведомляет об изменен…
  2. Sep 18, 2026✔️ QuiverAI выпустила обновление генератора векторной графики Во второе поколение семейств…
  3. Sep 17, 2026📚 Бесплатная книга по математике для Computer Science и Machine Learning - более 2200 стр…
  4. Sep 15, 2026🐍 Python: как найти изменённое поле во вложенном словаре Сравнение before == after покаже…
  5. Sep 15, 2026🔥 Один из лучших обучающих курсов на StepiK по SQL SQL можно знать годами и всё равно тер…
  6. Sep 13, 2026🐍 Python: type(x) == str или isinstance(x, str)? На первый взгляд разницы почти нет. Но о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →