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

+ Recent posts