프로그램의 코드 길이와 상관없이, 파이썬 리스트에서 요소를 제거하거나 삭제할 때는 remove, del, pop의 차이점을 정확히 이해하고 상황에 맞는 방법을 선택하는 것이 중요합니다. 세 가지 방법은 모두 리스트의 요소를 삭제하지만, 동작 방식과 용도가 서로 다릅니다.
1. remove(): 값으로 요소 삭제하기
remove()는 특정 인덱스가 아닌, 리스트에서 첫 번째로 일치하는 값(객체)을 찾아 삭제합니다. 사용 방법은 list.remove(value) 형태입니다.
예제
list = [10, 20, 30, 40] list.remove(30) print(list)
실행 결과
[10, 20, 40]
참고로, 삭제하려는 값이 리스트에 존재하지 않으면 ValueError 오류가 발생하므로 주의해야 합니다.
2. del: 인덱스로 요소 삭제하기
del은 특정 인덱스에 위치한 항목을 삭제합니다. 사용 방법은 del list[index] 형태입니다.
예제
list = [10, 20, 30, 40, 55] del list[1] print(list)
실행 결과
[10, 30, 40, 55]
또한 del은 슬라이싱을 활용해 여러 요소를 한 번에 삭제하거나(del list[1:3]), 리스트 자체를 통째로 삭제하는 것도 가능합니다.
3. pop(): 인덱스로 삭제 후 값 반환받기
pop()은 특정 인덱스의 항목을 삭제하고, 삭제된 값을 반환한다는 점이 특징입니다. 사용 방법은 list.pop(index) 형태이며, 인덱스를 지정하지 않으면 기본적으로 리스트의 마지막 요소가 제거됩니다.
예제
list = [100, 300, 400, 550] removed_item = list.pop(1) print(list) print(removed_item)
실행 결과
[100, 400, 550] 300
세 가지 방법 비교 정리
| 방법 | 삭제 기준 | 반환값 | 특징 |
|---|---|---|---|
| remove() | 값(value) | None | 첫 번째로 일치하는 값 삭제 |
| del | 인덱스(index) | 없음 | 슬라이싱·전체 삭제 가능 |
| pop() | 인덱스(index) | 삭제된 요소 | 인덱스 생략 시 마지막 요소 삭제 |
정리하면, 값을 기준으로 삭제할 때는 remove(), 인덱스로 삭제만 하면 될 때는 del, 삭제한 값을 다시 활용해야 할 때는 pop()을 사용하는 것이 가장 효율적입니다. 참고로 실무에서는 파이썬 내장 함수 list와 이름이 겹치지 않도록 변수명을 my_list 등으로 지정하는 것이 좋은 습관입니다.