TGViewer
Точка входа в программирование Точка входа в программирование @prog_point · 18K subscribers
Post #5135 318
Как искать по отсортированному списку с bisect

В отсортированном списке не обязательно перебирать элементы. Бинарный поиск отбрасывает половину оставшегося диапазона на каждом шаге. В примере статьи для 10 млн чисел понадобилось 23 сравнения, а проверке через in — больше 2 млн.

Модуль bisect делает такой поиск. bisect_left возвращает индекс первого совпадения, а bisect_right — позицию после последнего. Срез между ними содержит все повторы. Если значения нет, обе функции указывают, куда его вставить без нарушения сортировки. Чтобы проверить точное совпадение, убедитесь: индекс находится в списке, а элемент по нему равен искомому.

Для тренировки возьмите отсортированный список с повторами: найдите границы значения, выведите срез и обработайте отсутствие совпадения. В разборе Python Morsels есть готовые рецепты для проверки наличия, подсчёта совпадений и поиска крайних индексов.
  • ❤ 1
More from @prog_point
  1. Sep 22, 2026Как добавить динамику на статический сайт без своего сервера Статический сайт может получа…
  2. Sep 22, 2026Когда в Python действительно нужен класс Класс не обязателен для каждой программы. Он приг…
  3. Sep 21, 2026Как превратить функцию Python в веб-приложение с Gradio Если скрипт живёт только в файле,…
  4. Sep 21, 2026Как привязать подсказку к кнопке через CSS Anchor Positioning Подсказку легко поставить на…
  5. Sep 21, 2026Стек или очередь в Python: выбираем подходящую структуру Стек отдаёт последним то, что доб…
  6. Sep 20, 2026Как читать ввод с геймпада в JavaScript и не принять поломку за норму В Gamepad API нет со…
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 →