Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 튜플(Tuple) 데이터 타입 완벽 정리 – 리스트와의 차이점까지

튜플(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 코드를 작성할 수 있습니다.