이 모듈은 정렬된 리스트를 삽입 후에 다시 정렬할 필요 없도록 관리할 수 있도록 지원한다. 값비싼 비교 연산이 포함된 항목의 긴 리스트의 경우, 이는 일반적인 방법에 비해 개선된 것이다. 즉, 이분 탐색을 해주는 모듈이다.
정렬된 순서를 유지하도록 a에 x를 삽입할 위치를 찾는다. 들어갈 인덱스를 제공한다. 만약 같은 값이 있다면 같은 값들의 인덱스를 반환한다.
import bisect a = [1, 2, 4, 5] print(bisect.bisect_left(a, 2))
Output: 1
bisect_left()와 유사하지만, 삽입할 위치의 오른쪽 인덱스를 반환한다. 만약 같은 값이 있다면, 같은 값들의 오른쪽 인덱스를 반환한다.
import bisect a = [1, 2, 2, 4, 5] print(bisect.bisect_right(a, 2))
Output: 3
정렬된 순서를 유지하도록 a에 x를 삽입할 위치를 찾아 넣어준다. 즉, bisect_left() 메소드에 insert() 기능이 추가된 것이다.
import bisect a = [1, 3, 4, 5] bisect.insort_right(a, 2) print(a)
Output: [1, 2, 3, 4, 5]