파이썬에서 단일 요소를 삭제하는 것은 요소의 인덱스와 del 함수를 사용하여 간단합니다. 그러나 인덱스 그룹에 대한 요소를 삭제해야 하는 시나리오가 있을 수 있습니다. 이 문서에서는 인덱스 목록에 지정된 목록의 요소만 삭제하는 방법을 살펴봅니다.
정렬 및 del 사용
이 접근 방식에서는 삭제가 발생해야 하는 인덱스 값을 포함하는 목록을 만듭니다. 목록 요소의 원래 순서를 유지하기 위해 정렬하고 반전합니다. 마지막으로 특정 인덱스 포인트에 대해 원래 주어진 목록에 del 함수를 적용합니다.
예
Alist = [11,6, 8, 3, 2] # The indices list idx_list = [1, 3, 0] # printing the original list print("Given list is : ", Alist) # printing the indices list print("The indices list is : ", idx_list) # Use del and sorted() for i in sorted(idx_list, reverse=True): del Alist[i] # Print result print("List after deleted elements : " ,Alist)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given list is : [11, 6, 8, 3, 2] The indices list is : [1, 3, 0] List after deleted elements : [8, 2]
idx_list는 정렬 후 역순으로 [0,1,3]이 됩니다. 따라서 이 위치의 요소만 삭제됩니다.
enumerate를 사용하고 in은 사용하지 않음
for 루프 내에서 enumerate 및 not in 절을 사용하여 위의 프로그램에 접근할 수도 있습니다. 결과는 위와 같습니다.
예
Alist = [11,6, 8, 3, 2] # The indices list idx_list = [1, 3, 0] # printing the original list print("Given list is : ", Alist) # printing the indices list print("The indices list is : ", idx_list) # Use slicing and not in Alist[:] = [ j for i, j in enumerate(Alist) if i not in idx_list ] # Print result print("List after deleted elements : " ,Alist)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Given list is : [11, 6, 8, 3, 2] The indices list is : [1, 3, 0] List after deleted elements : [8, 2]