튜플(tuple)은 리스트와 거의 비슷하고, 다른 점은 다음과 같다.
>>> t1=()
>>> t2=(1,)
>>> t3=(1,2,3)
>>> t4=1,2,3
>>> t5=('a','b',('ab','cd'))
리스트와 모습은 거의 비슷하지만 튜플에서는 리스트와 다른 2가지 차이점을 찾아볼 수 있다.
t2=(1,) 처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를 반드시 붙여야 한다는 점이다.
그리고 t4=1,23 처럼 괄호()를 생략해도 무방하다는 점이다.
튜플과 리스트의 가장 큰 차이는 값을 변화시킬 수 있는가 없는가이다.
즉, 리스트 내의 값들은 삭제,수정 등의 변화가 가능하고 튜플의 값들은 불가능하다.
따라서 프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바란다거나 값이 바뀔까 걱정하고 싶지 않다면 튜플을 사용한다.
>>> t1=(1,2,'a','b')
>>> del t1[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
튜플은 item deletion이 지원되지 않는다는 메세지를 확인할 수 있다.
>>> t1[0]='c'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
마찬가지로 오류가 발생한다.
튜플의 값은 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일하다.
>>> t1=(1,2,'a','b')
>>> t1[0]
1
>>> t1[1:]
(2, 'a', 'b')
>>> t2=(3,4)
>>> t1+t2
(1, 2, 'a', 'b', 3, 4)
>>> t2*3
(3, 4, 3, 4, 3, 4)