파이썬(Python)에서 리스트(list)는 요소들이 연속된 메모리 공간에 저장되고, 각 요소를 인덱스(index)로 접근할 수 있는 선형 자료구조입니다.
프로그래밍을 하다 보면 리스트에서 특정 요소를 제거해야 하는 경우가 자주 발생합니다. 파이썬은 이를 위해 여러 가지 내장 함수와 문법을 제공하는데, 각 방법마다 동작 방식과 용도가 조금씩 다릅니다. 지금부터 대표적인 네 가지 방법을 살펴보겠습니다.
1. pop() – 인덱스로 요소 제거하기
pop() 함수는 인자로 전달된 인덱스 위치의 요소를 제거합니다. 제거된 요소는 반환값으로 돌려받을 수 있어서, 값을 꺼내면서 동시에 삭제하고 싶을 때 유용합니다.
예제
lst = [1, 2, 3, 4, 5] lst.pop(2) print(lst)
실행 결과
[1, 2, 4, 5]
위 코드에서 pop(2)는 인덱스 2에 위치한 요소 '3'을 제거합니다. 참고로 인자를 생략하면 기본적으로 마지막 요소가 제거됩니다.
2. remove() – 값으로 요소 제거하기
remove() 함수는 인자로 전달된 값과 일치하는 첫 번째 요소만 제거합니다. 인덱스가 아닌 실제 값을 기준으로 삭제한다는 점이 pop()과 다릅니다.
예제
lst = [1, 2, 3, 2, 4, 5] lst.remove(2) print(lst)
실행 결과
[1, 3, 2, 4, 5]
위 코드에서 remove(2)는 리스트에서 처음 등장하는 값 2, 즉 인덱스 1의 요소만 제거합니다. 뒤에 있는 또 다른 2는 그대로 유지되는 것을 확인할 수 있습니다.
3. del – 범위로 여러 요소 제거하기
del 키워드는 슬라이싱(slicing)과 함께 사용하여 인덱스 a부터 b-1까지(a는 포함, b는 미포함)의 여러 요소를 한 번에 제거할 수 있습니다.
예제
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] del lst[2:5] print(lst)
실행 결과
[0, 1, 5, 6, 7, 8, 9]
위 코드는 인덱스 2부터 4까지, 즉 요소 2, 3, 4를 리스트에서 제거합니다. del은 단일 요소(del lst[0])나 전체 리스트(del lst)를 삭제하는 데에도 활용할 수 있습니다.
4. clear() – 리스트의 모든 요소 제거하기
clear() 함수는 리스트에 들어 있는 모든 요소를 한꺼번에 제거합니다. 단, 리스트 객체 자체는 사라지지 않고 빈 리스트로 남게 됩니다.
예제
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] lst.clear() print(lst)
실행 결과
[]
모든 요소가 제거되었지만, 빈 리스트 []가 그대로 유지되는 것을 볼 수 있습니다.
마무리: 어떤 방법을 선택해야 할까?
각 방법의 특징을 정리하면 다음과 같습니다.
- pop(): 인덱스로 제거하며, 제거된 값을 반환받아야 할 때 적합
- remove(): 특정 값과 일치하는 첫 번째 요소를 제거할 때 적합
- del: 슬라이싱으로 여러 요소를 한 번에 제거할 때 적합
- clear(): 리스트를 비우고 싶을 때 적합
상황에 맞는 함수를 선택하면 코드의 가독성과 효율성을 모두 높일 수 있습니다.