리스트가 주어졌을 때 가운데를 기준으로 K개의 중간 요소를 추출해야 하는 경우가 있습니다. 파이썬에서는 이 작업을 //(정수 나눗셈) 연산자와 리스트 슬라이싱을 활용하면 간단하게 처리할 수 있습니다.
아래 예제를 통해 구체적인 구현 방법을 살펴보겠습니다.
예제 코드
my_list = [34, 56, 12, 67, 88, 99, 0, 1, 21, 11]
print("리스트는 다음과 같습니다 : ")
print(my_list)
K = 5
print("K의 값은 다음과 같습니다 : ")
print(K)
beg_indx = (len(my_list) // 2) - (K // 2)
end_indx = (len(my_list) // 2) + (K // 2)
my_result = my_list[beg_indx: end_indx + 1]
print("결과는 다음과 같습니다 : ")
print(my_result)
출력 결과
리스트는 다음과 같습니다 : [34, 56, 12, 67, 88, 99, 0, 1, 21, 11] K의 값은 다음과 같습니다 : 5 결과는 다음과 같습니다 : [67, 88, 99, 0, 1]
코드 설명
먼저 하나의 리스트를 정의하고, 콘솔에 출력하여 확인합니다.
추출할 요소의 개수인 K 값을 정의한 뒤 화면에 표시합니다.
len()함수로 리스트의 전체 길이를 구하고,//연산자를 사용해 소수점 없이 몫만 계산합니다. 이 값이 리스트의 중심 인덱스 역할을 합니다.중심 인덱스에서
K // 2를 뺀 값을 시작 인덱스(beg_indx) 변수에 할당합니다.마찬가지로 두 값을 더한 결과를 끝 인덱스(
end_indx) 변수에 할당합니다.리스트 슬라이싱 연산을 통해 시작 인덱스부터 끝 인덱스 + 1까지의 범위에 해당하는 특정 요소들에 접근합니다.
슬라이싱 결과를 별도의 변수(
my_result)에 저장합니다.최종 결과를 콘솔에 출력합니다.
핵심 포인트 정리
//연산자는 나눗셈 결과에서 소수점을 버린 정수 몫을 반환하므로, 인덱스 계산에 적합합니다.끝 인덱스에 1을 더하는 이유는 슬라이싱이 끝 인덱스 바로 앞까지만 포함하기 때문입니다.
이 방식은 K가 홀수일 때 정확히 중앙을 기준으로 대칭적인 요소들을 추출할 수 있어 유용합니다.