728x90
from bisect import bisect_left, bisect_right
def count(a, left_value, right_value):
right_index = bisect_right(a, right_value)
left_index = bisect_left(a, left_value)
return right_index - left_index
# 정렬된 리스트
a = [5, 7, 7, 7, 8, 8, 9, 10, 15]
# 값이 7인 데이터 개수 출력
print(count(a, 7, 7))
# 값이 [-1, 7] 범위에 있는 데이터 개수 출력
print(count(a, -1, 7))
print(count(a, 7, 7))
bisect_left(a, 7)은 값 7이 처음 나타나는 인덱스 1을 반환하고, bisect_right(a, 7)은 값 7이 처음으로 나타나는 인덱스의 오른쪽에 위치하는 인덱스 4를 반환한다. 따라서 4 - 1 = 3으로, 값이 7인 데이터의 개수인 3이 출력된다.
print(count(a, -1, 2))
-1부터 7까지(7을 포함하여) 범위에 있는 데이터의 개수를 출력한다. 5, 7, 7, 7 네 개이므로 결과로 4가 출력된다.
728x90
'파이썬(Python) 공부' 카테고리의 다른 글
JSON 인코딩과 디코딩 (0) | 2023.07.20 |
---|---|
math 라이브러리 (0) | 2023.07.20 |
파이썬 순열(Permutations), 조합(Combinations) (0) | 2023.07.20 |
입력을 위해 사용되는 소스코드 (0) | 2023.07.20 |
람다(lambda) 표현식을 사용하여 함수 작성하기 (0) | 2023.07.20 |