Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python) – 리스트에서 증가하지 않는 요소 제거하기

파이썬에서 리스트에 담긴 값들 중 앞선 값보다 작아지는, 즉 증가하지 않는 요소를 제거해야 할 때가 있습니다. 이런 경우 별도의 외부 라이브러리 없이 간단한 반복문과 요소 비교만으로도 손쉽게 해결할 수 있습니다.

예제 코드

다음은 리스트를 순회하면서 증가하지 않는 요소를 걸러내는 전체 예제입니다.

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:] 슬라이싱부터 순회하도록 코드를 수정하면 됩니다.