파이썬 튜플은 변경 불가능(Immutable)합니다
파이썬에서 튜플(tuple)은 한 번 생성하면 그 내용을 직접 수정할 수 없는 변경 불가능(immutable)한 자료형입니다. 따라서 튜플에서 특정 항목을 '제거'하는 메서드는 별도로 제공되지 않습니다.
하지만 두 가지 방법으로 원하는 결과를 얻을 수 있습니다. 바로 인덱스 슬라이싱을 이용하는 방법과, 리스트로 변환 후 삭제하고 다시 튜플로 변환하는 방법입니다.
방법 1: 인덱스 슬라이싱 사용하기
슬라이싱을 활용하면 특정 인덱스의 항목만 건너뛰고 새로운 튜플을 만들 수 있습니다. 예를 들어 인덱스 2의 항목(값 3)을 제거하려면 다음과 같이 작성합니다.
a = (1, 2, 3, 4, 5)
b = a[:2] + a[3:]
print(b)
실행 결과:
(1, 2, 4, 5)
a[:2]는 인덱스 0~1까지의 요소를, a[3:]는 인덱스 3부터 끝까지의 요소를 가져온 뒤 두 조각을 연결하여 새로운 튜플을 생성합니다.
방법 2: 리스트로 변환 후 삭제하기
항목이 많거나 여러 개를 삭제해야 하는 경우에는 튜플을 리스트로 변환한 뒤 del 문으로 항목을 삭제하고, 다시 튜플로 변환하는 것이 더 편리할 수 있습니다.
a = (1, 2, 3, 4, 5)
ls_a = list(a)
del ls_a[2]
b = tuple(ls_a)
print(b)
실행 결과:
(1, 2, 4, 5)
정리
두 방법 모두 원본 튜플을 수정하는 것이 아니라, 원하는 항목이 제외된 새로운 튜플을 만든다는 점에 유의하세요. 간단한 하나의 항목 제거에는 슬라이싱이 효율적이고, 여러 항목을 다뤄야 한다면 리스트 변환 방식이 더 유연합니다.