프로그래밍/[ Python ]

[Python] bisect

망나 2020. 8. 24. 22:53

python에서 제공하는 표준 라이브러리인 bisect에 대해서 정리하겠습니다.

 

bisect

bisect는 이진 검색 알고리즘을 이용하여 입력받은 시퀀스를 검색하는 기능을 제공하는 함수 입니다.

# bisect.bisect(a, x, lo=0, hi=len(a))
# 리스트 a에 x값이 들어갈 자리의 인덱스값을 반환합니다.

temp = [1, 3, 4, 5]

bisect.bisect(temp, 2)
# 출력값 : 1

 

bisect_right, bisect_left

bisect는 bisect_right와 동일하며, 이 두 함수는 리스트 a에 x와 동일한 값이 존재하면 해당 값의 뒷 인덱스 값을 반환합니다.

bisect.bisect_right(temp, 3)
# 출력값 : 2

하지만, bisect_left는 동일한 값의 인덱스를 반환합니다.

bisect.bisect_left(temp, 3)
# 출력값 : 1

 

insort

insort는 정렬된 시퀀스 a에 x값을 삽입합니다.

# bisect.insort(a, x, lo=0, hi=len(a))

temp = [1, 3, 4, 5]

bisect.insort(temp, 2)
# temp : [1, 2, 3, 4, 5]

 

insort도 동일하게 insort_right와 insort_left가 존재하며 동작 방식은 bisect와 동일합니다.

 

'프로그래밍 > [ Python ]' 카테고리의 다른 글

[1-2] 파이썬  (0) 2020.11.18
[1-1] 코딩 인터뷰  (0) 2020.11.17
[Python] 슬라이싱(slicing) 기본  (0) 2020.08.18
[Python] 문자열 활용법 정리  (0) 2020.08.18
[Python] pickle (데이터 저장 및 불러오기)  (0) 2020.06.02