파이썬에서 리스트(list)에 저장된 객체를 제거하는 방법은 크게 세 가지가 있습니다. 바로 remove(), del, pop()입니다. 각 방법은 동작 방식과 용도가 조금씩 다르므로 상황에 맞게 선택해 사용하면 됩니다.
1. remove() – 값으로 요소 제거하기
remove() 메서드는 인덱스가 아닌 값을 기준으로 동작합니다. 인자로 전달한 값과 일치하는 첫 번째 요소를 리스트에서 삭제합니다. 같은 값이 여러 개 있어도 가장 앞에 있는 하나만 제거된다는 점에 유의하세요.
예제
a = [3, 2, 3, 2] a.remove(3) print(a)
출력 결과
[2, 3, 2]
위 예제에서 값 3이 두 개 존재하지만, 첫 번째 3만 제거되고 나머지 요소는 그대로 유지됩니다.
2. del – 인덱스로 요소 제거하기
del 키워드는 특정 인덱스에 위치한 요소를 삭제합니다. 별도의 반환값은 없으며, 슬라이싱을 활용하면 여러 요소를 한 번에 삭제할 수도 있습니다.
예제
a = [3, "Hello", 2, 1] del a[1] print(a)
출력 결과
[3, 2, 1]
인덱스 1에 있던 문자열 "Hello"가 삭제되고 나머지 요소들이 그대로 남아 있는 것을 확인할 수 있습니다.
3. pop() – 제거하면서 값 반환받기
pop() 메서드는 요소를 제거한 후 그 값을 반환한다는 점이 특징입니다. 인자로 전달하는 값은 제거하고 싶은 요소의 인덱스이며, 이 덕분에 제거된 요소를 변수에 저장해 재사용할 수 있습니다.
예제
a = [3, "Hello", 2, 1] print(a.pop(1)) print(a)
출력 결과
Hello [3, 2, 1]
인덱스 1의 요소였던 "Hello"가 먼저 반환된 뒤 리스트에서 제거되었습니다.
세 가지 방법 한눈에 비교하기
| 방법 | 기준 | 특징 |
|---|---|---|
| remove() | 값 | 일치하는 첫 번째 값만 제거 |
| del | 인덱스 | 반환값 없음, 슬라이싱으로 다중 삭제 가능 |
| pop() | 인덱스 | 제거된 요소를 반환 |
정리하면, 제거할 값을 알고 있다면 remove(), 위치를 기준으로 삭제하려면 del, 삭제와 동시에 해당 값을 활용해야 한다면 pop()을 사용하는 것이 가장 효율적입니다.