파이썬에서 리스트에 담긴 값들 중 앞선 값보다 작아지는, 즉 증가하지 않는 요소를 제거해야 할 때가 있습니다. 이런 경우 별도의 외부 라이브러리 없이 간단한 반복문과 요소 비교만으로도 손쉽게 해결할 수 있습니다.
예제 코드
다음은 리스트를 순회하면서 증가하지 않는 요소를 걸러내는 전체 예제입니다.
my_list = [5, 23, 45, 11, 45, 67, 89, 99, 10, 26, 7, 11]
print("The list is :")
print(my_list)
my_result = [my_list[0]]
for elem in my_list:
if elem >= my_result[-1]:
my_result.append(elem)
print("The result is :")
print(my_result)실행 결과
The list is : [5, 23, 45, 11, 45, 67, 89, 99, 10, 26, 7, 11] The result is : [5, 5, 23, 45, 45, 67, 89, 99]
코드 설명
정수로 구성된 리스트를 정의하고 콘솔에 출력합니다.
결과를 저장할 새로운 리스트를 만들고, 원본 리스트의 첫 번째 요소로 초기화합니다.
for 문을 사용해 원본 리스트의 모든 요소를 하나씩 순회합니다.
각 요소(elem)를 결과 리스트의 마지막 요소(my_result[-1])와 비교하여 크거나 같은지 검사합니다.
조건을 충족하는 요소만 결과 리스트에 추가(append)하여, 리스트가 항상 오름차순을 유지하도록 만듭니다.
모든 순회가 끝나면 필터링된 최종 결과가 콘솔에 출력됩니다.
참고 사항
실행 결과를 보면 첫 번째 값인 5가 두 번 포함되어 있는 것을 확인할 수 있습니다. 이는 결과 리스트를 my_list[0]으로 미리 초기화한 뒤, 반복문에서 첫 번째 요소를 다시 한번 비교·추가했기 때문입니다. 또한 비교 조건이 >=(크거나 같음)이므로 동일한 값인 45 역시 두 번 남게 됩니다. 만약 중복 없이 깔끔하게 처리하고 싶다면 빈 리스트로 시작하거나, my_list[1:] 슬라이싱부터 순회하도록 코드를 수정하면 됩니다.