더북(TheBook)

튜플

튜플(tuple) 역시 시퀀스 형태의 자료 구조로, 순서가 있다는 점에서 리스트와 유사하며 인덱스는 0에서 시작한다. ( , , )로 표현하는데, 변경 불가능한(immutable) 시퀀스이므로 일단 생성하면 값을 변경할 수 없는 것이 리스트와의 가장 큰 차이이다. 값을 변경할 수 없으니 sort, append, reverse 등의 메서드(method) 또한 사용할 수 없다.

>>> x = (3, 2, 1)
>>> x[1] = 5    # 에러 발생
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-18-0586ef3e8b02> in <module>
----> 1 x[1]=5

TypeError: 'tuple' object does not support item assignment

튜플은 한 번 값을 생성하면 변경할 수 없어 메모리 사용이나 속도 등에서 리스트보다 효율적으로 사용되는 자료 구조다. 특히 임시 변수를 생성할 때 유리하다. 다음에 살펴볼 딕셔너리 자료 구조에서 키(key)와 값(value)을 반환할 때 튜플 구조를 사용한다. map 함수에서도 키(리스트는 키가 될 수 없음)로 사용되고, 일부 내장 함수에서의 반환값 형식으로 활용되기도 한다.

또한, 튜플끼리 크기를 비교하거나 튜플 안의 각 값을 비교할 때 첫 번째 비교 값이 같으면 다음 값을 비교하는 로직을 따른다.

>>> (0, 1, 3) < (7, 1, 3)      # 두 튜플의 첫 번째 값인 0과 7을 비교
True
>>> (1, 2, 20000) < (1, 3, 4)  # 두 튜플의 첫 번째 값이 같으므로 두 번째 값인 2와 3을 비교
True
>>> ('JJJ', 'Salad' ) < ('JJJ', 'Sam')    # 두 번째 값인 Salad와 Sam을 비교하는데 세 번째 
                                          글자부터 달라서 l과 m을 비교, l이 m보다 
                                          먼저 나와서 True
True
>>> ('John', 'Salad') > ('April', 'Sat')  # 첫 번째 값인 John과 April을 비교
True
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.