리스트의 특정 행 범위에서 최대값을 구해야 하는 경우, 간단한 반복문과 max 메서드를 활용하면 손쉽게 해결할 수 있습니다. 이 방법은 중첩 리스트(리스트의 리스트)에서 원하는 인덱스 범위만 잘라내어 그 안에서 가장 큰 값을 찾는 방식으로 동작합니다.
아래는 실제 동작 예시입니다.
예제 코드
my_list = [[11, 35, 6], [9, 11, 3], [35, 4, 2], [8, 15, 35], [5, 9, 18], [5, 14, 2]]
print("The list is :")
print(my_list)
i, j = 2, 4
print("The values for integers are ")
print(i, j)
my_result = 0
for index in range(i, j):
my_result = max(max(my_list[index]), my_result)
print("The result is :")
print(my_result)실행 결과
The list is : [[11, 35, 6], [9, 11, 3], [35, 4, 2], [8, 15, 35], [5, 9, 18], [5, 14, 2]] The values for integers are 2 4 The result is : 35
코드 설명
리스트 안에 여러 개의 리스트가 포함된 중첩 리스트를 정의하고, 콘솔에 출력하여 확인합니다.
범위를 지정할 두 개의 정수 값(i, j)을 정의한 뒤 콘솔에 표시합니다. 여기서는 2와 4로 설정했습니다.
결과를 저장할 변수를 0으로 초기화합니다. 모든 요소가 양수라면 이 초기값은 최종 결과에 영향을 주지 않습니다.
range(i, j)를 사용해 지정된 인덱스 범위(2부터 3까지)만큼 반복문을 순회합니다. 파이썬의 range는 끝값을 포함하지 않으므로 인덱스 2와 3에 해당하는 행만 검사 대상이 됩니다.각 반복마다 해당 행 전체의 최대값을
max함수로 구하고, 기존 결과 변수와 비교해 더 큰 값을 다시 변수에 할당합니다.모든 반복이 끝나면 지정된 행 범위 내에서 발견된 최대값이 콘솔에 출력됩니다. 위 예제에서는 인덱스 2의 [35, 4, 2]와 인덱스 3의 [8, 15, 35] 중 가장 큰 값인 35가 결과로 나타납니다.