튜플(tuple)은 리스트와 매우 유사한 또 다른 시퀀스(sequence) 데이터 타입입니다. 여러 개의 값을 쉼표(,)로 구분하여 구성하며, 리스트와 달리 괄호 ()로 묶는다는 점이 특징입니다.
리스트(List)와 튜플(Tuple)의 차이점
리스트와 튜플의 핵심적인 차이는 다음과 같습니다.
- 리스트: 대괄호
[]로 감싸며, 요소와 크기를 자유롭게 변경할 수 있습니다. - 튜플: 소괄호
()로 감싸며, 한 번 생성되면 값을 수정할 수 없습니다(불변, immutable).
즉, 튜플은 읽기 전용(read-only) 리스트라고 생각하면 이해하기 쉽습니다.
튜플 기본 사용 예제
다음은 튜플을 선언하고 인덱싱·슬라이싱·반복·연결 등 다양한 연산을 수행하는 예제입니다.
#!/usr/bin/python tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) tinytuple = (123, 'john') print tuple # 튜플 전체 출력 print tuple[0] # 첫 번째 요소 출력 print tuple[1:3] # 2번째부터 3번째까지 요소 출력 print tuple[2:] # 3번째 요소부터 끝까지 출력 print tinytuple * 2 # 튜플을 두 번 반복하여 출력 print tuple + tinytuple # 두 튜플을 연결하여 출력
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')튜플은 값 변경이 불가능합니다
아래 코드처럼 튜플의 특정 요소를 수정하려고 하면 오류가 발생합니다. 튜플은 불변(immutable) 객체이기 때문에 생성 후에는 값을 업데이트할 수 없습니다. 반면 리스트는 얼마든지 수정이 가능합니다.
#!/usr/bin/python tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) list = [ 'abcd', 786 , 2.23, 'john', 70.2 ] tuple[2] = 1000 # 튜플에 대한 유효하지 않은 문법 (오류 발생) list[2] = 1000 # 리스트에 대한 유효한 문법 (정상 동작)
정리
튜플은 데이터의 무결성을 보장해야 하거나, 프로그램 실행 중 값이 절대 변경되어서는 안 되는 경우에 유용하게 사용됩니다. 리스트와 튜플의 차이를 명확히 이해하고 상황에 맞게 활용하면 더 안전하고 효율적인 Python 코드를 작성할 수 있습니다.