파이썬 리스트에서 항목 제거하기: remove(), pop(), clear(), del 완벽 가이드
파이썬 리스트에서 항목 제거하는 방법
파이썬의 list 타입은 이질적인 아이템을 순서 있는 시퀀스로 저장합니다. 이 시퀀스를 다듬어야 할 때 파이썬은 네 가지 내장 메커니즘을 제공합니다:
- list.remove() – 첫 번째 일치하는 요소 삭제
- list.pop() – 인덱스로 요소 삭제하고 반환
- list.clear() – 리스트 전체 비우기
- del – 슬라이스 기반 삭제 또는 인덱스 제거
아래에서 각 메서드를 자세히 설명하고, 흔한 함정을 짚으며, 간결한 코드 스니펫을 제공합니다.
예제 리스트
my_list = ['Guru', 50, 11.50, 'Siya', 50, ['A', 'B', 'C']]
인덱스는 0부터 시작:
- 0:
'Guru'
- 1:
50 (int)
- 2:
11.50 (float)
- 3:
'Siya'
- 4:
50 (중복)
- 5:
['A', 'B', 'C']
1. list.remove()
지정된 값의 첫 번째 발생을 제거합니다. 값이 없으면 ValueError 발생.
my_list.remove(50) # 첫 번째 50 제거
my_list.remove('Siya') # 첫 번째 'Siya' 제거
핵심 포인트:
- 첫 번째 일치만 제거; 중복은 남음
- 인수는 요소의 데이터 타입과 정확히 일치해야 함
- 메서드는
None 반환 (값 없음)
2. list.pop()
인덱스로 요소를 삭제하고 제거된 값을 반환. 인덱스 생략 시 마지막 요소 제거.
removed = my_list.pop(2) # 인덱스 2 요소 제거
last = my_list.pop() # 마지막 요소 제거
참고사항:
- 인덱스는 0부터 시작; 음수 인덱스는 끝에서부터 계산
- 범위 초과 인덱스는
IndexError 발생
- 메서드는 제거된 요소를 반환
3. list.clear()
리스트 전체를 제자리에서 비웁니다.
my_list.clear()
이 호출 후 my_list는 빈 리스트: [].
4. del 키워드
del 문은 단일 요소 또는 요소 슬라이스를 제거할 수 있습니다.
del my_list[0] # 첫 번째 요소 삭제
del my_list[2:5] # 인덱스 2, 3, 4 요소 삭제
리스트 변수 자체를 삭제할 수도 있음: del my_list.
실전 시나리오
- 첫 번째 요소 제거:
my_list.pop(0) 또는 del my_list[0]
- 특정 값의 모든 발생 제거:
my_list = [x for x in my_list if x != target]
- 재사용을 위해 리스트 비우기:
my_list.clear()
흔한 함정
- 없는 값에
remove() 사용 시 ValueError 발생
pop()에서 음수 인덱스가 의도치 않게 마지막 요소 제거할 수 있음
del로 리스트 변수 삭제 후 접근 시 NameError 발생
요약표
| 메서드 | 설명 |
list.remove(value) | 첫 번째 일치 요소 삭제 |
list.pop(index) | 인덱스로 요소 삭제; 값 반환 |
list.clear() | 리스트 전체 비우기 |
del list[index] / del list[start:stop] | 단일 요소 또는 슬라이스 삭제 |