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

파이썬에서 리스트의 특정 인덱스 요소를 제거하는 프로그램

리스트에서 특정 인덱스에 위치한 요소들을 제거해야 하는 경우, enumerate 함수와 not in 연산자, 간단한 반복문, 그리고 append 메서드를 함께 사용하면 손쉽게 해결할 수 있습니다.

예제 코드

아래는 이를 구현한 예제입니다.

my_list = [91, 75, 15, 45, 69, 78, 23, 71, 36, 72]

print("The list is : " )
print(my_list)

print("The list after sorting is : " )
my_list.sort()
print(my_list)

index_list = [2, 4, 5, 7]
print("The index values stored in the list are :")
print(index_list)

my_result = []
for index, element in enumerate(my_list):
   if index not in index_list:
      my_result.append(element)

print("The resultant list is : ")
print(my_result)

print("The list after sorting is : " )
my_result.sort()
print(my_result)

실행 결과

The list is :
[91, 75, 15, 45, 69, 78, 23, 71, 36, 72]
The list after sorting is :
[15, 23, 36, 45, 69, 71, 72, 75, 78, 91]
The index values stored in the list are :
[2, 4, 5, 7]
The resultant list is :
[15, 23, 45, 72, 78, 91]
The list after sorting is :
[15, 23, 45, 72, 78, 91]

동작 원리 설명

  • 먼저 하나의 리스트를 정의하고 콘솔에 출력합니다.

  • 리스트를 오름차순으로 정렬한 뒤 다시 출력합니다.

  • 제거할 요소들의 인덱스 값을 별도의 리스트에 저장합니다.

  • 저장된 인덱스 리스트 역시 콘솔에 출력합니다.

  • 결과를 담을 빈 리스트를 하나 생성합니다.

  • enumerate 함수를 사용해 원본 리스트를 순회하면서 각 요소의 인덱스와 값을 함께 가져옵니다.

  • if 조건문과 not in 연산자를 통해 현재 인덱스가 인덱스 리스트에 포함되어 있는지 검사합니다.

  • 포함되어 있지 않다면, 해당 요소를 결과 리스트에 추가(append)합니다.

  • 인덱스 리스트에 포함된 위치의 요소들은 자연스럽게 건너뛰어지므로 최종 결과에서 제거됩니다.

  • 완성된 결과 리스트를 출력하고, 마지막으로 한 번 더 정렬하여 콘솔에 표시합니다.

참고: 리스트 컴프리헨션을 활용한 간결한 방법

위 코드는 리스트 컴프리헨션(list comprehension)을 사용하면 더욱 간결하게 표현할 수 있습니다.

my_result = [element for index, element in enumerate(my_list) if index not in index_list]

이 방식은 동일한 로직을 한 줄로 처리하며, 가독성과 성능 면에서도 유리합니다. 또한 인덱스 리스트가 매우 길다면 set으로 변환하여 조회 속도를 높이는 것도 좋은 최적화 방법입니다.