티스토리 뷰
< 정의 >
정렬된 데이터를 이진 탐색 할때 사용하는 파이썬의 라이브러리
< 형태 >
from bisect import bisect_left, bisect_right
left_index = bisect_left(array, value, low(범위), high(범위)) # (low(범위) ~ high(범위))내에 있는 값
left_index = bisect_left(array, value)
right_index = bisect_right(array, value, low(범위), high(범위)) # (low(범위) ~ high(범위))내에 있는 값
right_index = bisect_right(array, value)
bisect_left(left_index = bisect_left(array, value, low범위), high범위))
= bisect_left(array, value)
: 정렬된 array에서 (low ~ high)까지 범위내 value이 들어갈 만한 곳의 '왼쪽'에 넣어 index를 return
bisect_right(array, value, low(범위), high(범위))
= bisect_right(array, value)
: 정렬된 array에서 (low ~ high)까지 범위내 value이 들어갈 만한 곳의 '오른쪽'에 넣어 index를 return
< 범위내 데이터 개수 구하기 >
from bisect import bisect_left, bisect_right
def cntValue_in_range(array, left_value, right_value):
left_index = bisect_left(array, left_value)
right_index = bisect_right(array, right_value)
cnt_value = right_index - left_index
return cnt_value
반응형
'Tip and Error > Python' 카테고리의 다른 글
[Error] UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 4: illegal multibyte sequence (0) | 2021.05.02 |
---|---|
.exe 파일(실행 파일) 만들기 (0) | 2021.04.15 |
defaultdict - collections 모듈 (0) | 2020.10.14 |
reverse() & reversed() & [::-1] (0) | 2020.10.02 |
문자열(' ')은 변경 할 수 없다. (0) | 2020.09.06 |
공지사항
최근에 올라온 글