본문 바로가기

코딩/파이썬 기초

파이썬 튜토리얼 029. 시퀀스 타입의 튜플 (tuple)

python : sequence type : tuple

시퀀스 타입의 튜플 (tuple)

시퀀스의 사전적 의미는 "연속적인 어떤 것(예. 사건들, 행동들, 숫자들)"이다.

위키백과는 시퀀스를 "영화에서 몇 개의 관련된 장면을 모아서 이루는 구성단위를 가리킨다"라고 설명한다.

 

파이썬의 기본적인 시퀀스 타입에는 리스트, 튜플, 그리고 range가 있다.

 

리스트는 mutable, 즉 가변의 특성을 가지고 있기에 리스트 내 아이템은 추가되거나 삭제될 수 있다.

이를 위해 리스트는 아이템을 추가하거나 삭제하는 메서드(append나 remove 등)를 제공한다.

 

하지만 튜플은 immutable, 즉 불변의 특성을 가지고 있어 한번 정의된 튜플은 그 아이템이 추가되거나 삭제될 수 없다.

 

튜플 데이터는 괄호 "("와 ")" 기호 또는 콤마 "," 기호를 사용해 정의할 수 있다.

 

tp = (1, 2, 3)
print(tp)

tp = 1, 2, 3
print(tp)

tp = tuple((1, 2, 3))
print(tp)

tp = tuple([1, 2, 3])
print(tp)

 

  • 첫번째 코드는 튜플 데이터 정의를 위해 괄호 "("와 ")"를 사용한다.
  • 두번째 코드는 튜플 데이터 정의를 위해 콤마 만을 사용한다.
  • 세번째 코드는 튜플 데이터 정의를 위해 tuple 키워드를 사용한다.
  • 세번째 코드는 튜플 데이터 정의를 위해 tuple 키워드 및 전달인자로 리스트를 사용한다.

튜플 데이터 정의

 

튜플은 immutable 특성을 가지고 있어 튜플 내 아이템 추가, 삭제 또는 변경이 불가하나 튜플 내 아이템이 mutable 특성을 갖는 리스트라면 해당 리스트의 값 변경은 가능하다.

 

tp = (1, 2, 3, [5, 5, 6])
print(tp)

tp[3][0] = 4
print(tp)

 

위의 코드는 튜플 변수 tp의 네번째 아이템 [5, 5, 6] 리스트의 첫번째 값을 변경한다.

 

튜플 내 리스트 아이템의 변경

 

만약 immutable 특성의 첫번째 아이템인 1을 변경하고자 한다면 오류가 발생한다.

 

tp = (1, 2, 3, [5, 5, 6])
print(tp)

tp[0] = 0
print(tp)

 

튜플 아이템의 변경 시도

 

튜플 아이템의 개수가 한 개라면, 끝에 콤마를 붙여 튜플 데이터임을 명시한다.

 

tp1 = 1
tp2 = (1)
tp3 = 1,
print(type(tp1))
print(type(tp2))
print(type(tp3))

 

아이템이 한개인 튜플 데이터