튜플은 리스트 자료형과 같은 '순서있는 배열'이며 원소의 값을 변경할 수 없는 구조로 되어있습니다. 튜플을 생성하는 방법은 다음과 같습니다.
튜플 객체 생성하기
튜플 객체를 생성하는 방법은 다음과 같이 다양합니다.
>>> t = (3,) # create tuple 1
>>> t = 3,5,7 # create tuple 2
>>> t = tuple(range(10)) # create tuple 3
>>> type(t)
<class 'tuple'>
>>>
튜플의 핵심은 콤마 , 입니다. 객체들을 콤마로 구분해주면 튜플 객체가 생성된다는 점을 기억해두시기 바랍니다.
값 변경 불가능한 튜플
튜플은 각 원소의 값을 변경할 수 없습니다. 변경을 시도할 경우 다음과 같이 에러가 발생합니다.
>>> x = ( 1, 2, 3 )
>>> x[1] = 2
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
x[1] = 2
TypeError: 'tuple' object does not support item assignment
>>>
튜플은 원소의 접근속도가 리스트에 비해 빠른대신에 값을 변경할 수 없다는 단점을 가지고 있습니다. 이러한 성격때문에 튜플은 변할 가능성이 적은 데이터들을 저장할 때 자주 사용됩니다. 예를 들어 각 나라들의 이름을 저장할 때 리스트보다는 튜플을 사용하는 편이 좋습니다. 나라들의 이름은 쉽게 변동되지 않기 때문입니다.
튜플의 기본적인 연산
튜플은 순열이기 때문에 순열 연산을 수행할 수 있습니다.
>>> t1 = (1, 2, 3)
>>> t2 = (4, 5, 6)
>>> t1 + t2 # 덧셈
(1, 2, 3, 4, 5, 6)
>>> t1 * 2 # 곱셈
(1, 2, 3, 1, 2, 3)
>>> t[1:2] # 슬라이싱
(2, 3)
>>> t[0:2:2]
(3, )
튜플의 메서드
튜플은 값을 변경할 수없는 타입(immutable class)입니다. 따라서 list자료형에서 사용할 수 있었던 append,extend,insert같은 수정 메서드는 튜플에서 사용할 수 없습니다. 튜플은 다음과 같은 간단한 메서드만 존재합니다.
count(value)
:해당 튜플객체에 해당 value가 몇개있는지에 대한 값을 반환합니다.
>>> t = 'a','p','p','l','e'
>>> t.count('p')
2
index(value,offset=1)
:튜플의 offset부터 끝까지 value를 검사하고 인덱스번호를 반환합니다.
>>> t = (1, 2, 3, 4, 5, 6, 7, 2)
>>> t.index(2)
1
>>> t.index(2,3)
7