Пост канала
- фото
Как искать по отсортированному списку с bisect В отсортированном списке не обязательно перебирать элементы. Бинарный поиск отбрасывает половину оставшегося диапазона на каждом шаге. В примере статьи для 10 млн чисел понадобилось 23 сравнения, а проверке через in — больше 2 млн. Модуль bisect делает такой поиск. bisect_left возвращает индекс первого совпадения, а bisect_right — позицию после последнего. Срез между ними содержит все повторы. Если значения нет, обе функции указывают, куда его вставить без нарушения сортировки. Чтобы проверить точное совпадение, убедитесь: индекс находится в списке, а элемент по нему равен искомому. Для тренировки возьмите отсортированный список с повторами: найдите границы значения, выведите срез и обработайте отсутствие совпадения. В разборе Python Morsels есть готовые рецепты для проверки наличия, подсчёта совпадений и поиска крайних индексов.
Открыть в MAX- Просмотры
- 45
- ER
- 2,2%
- Реакции
- 1