리스트의 각 요소를 자신의 양쪽 이웃 중 더 큰 값으로 교체해야 하는 경우, 간단한 반복문과 if, else 조건문을 활용하면 손쉽게 해결할 수 있습니다.
예제
아래는 해당 기능을 구현한 예시입니다.
my_list = [41, 25, 24, 45, 86, 37, 18, 99]
print("The list is :")
print(my_list)
for index in range(1, len(my_list) - 1):
my_list[index] = my_list[index - 1] if my_list[index - 1] > my_list[index + 1] else my_list[index + 1]
print("The resultant list is :")
print(my_list)출력 결과
The list is : [41, 25, 24, 45, 86, 37, 18, 99] The resultant list is : [41, 41, 45, 86, 86, 86, 99, 99]
코드 설명
정수로 구성된 리스트를 정의한 뒤 콘솔에 출력합니다.
리스트를 순회하며 각 요소의 인덱스에 접근합니다. 이때 첫 번째와 마지막 요소는 이웃이 한쪽뿐이므로 비교 대상에서 제외되고 원래 값이 그대로 유지됩니다.
현재 인덱스를 기준으로 왼쪽 이웃(이전 인덱스)이 오른쪽 이웃(다음 인덱스)보다 크면 왼쪽 값을, 그렇지 않으면 오른쪽 값을 현재 위치에 대입합니다.
모든 요소가 교체된 최종 리스트를 콘솔에 출력합니다.