튜플은 ,
로 구분된 값으로 이루어지는 불변 시퀀스 타입이다.
>>> a = ()
>>> type(a)
<class 'tuple'>
>>> a = tuple()
>>> a
()
>>> type(a)
<class 'tuple'>
tuple()은 값을 변경하거나 삭제 할 수 없다. 단지 쓸 수만 있다.
리스트와 가장 다른 점이라고 할 수 있겠다. 불변 시퀀스 타입이기 때문에 값을 변경하거나 삭제할 수 없다.
>>> a = [1,2,3,4,5]
>>> b = (1,2,3,4,5)
>>> type(a), type(b)
(<class 'list'>, <class 'tuple'>)
>>> a[0] = 9
>>> a
[9, 2, 3, 4, 5]
>>> b[0] = 9
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
b[0] = 9
TypeError: 'tuple' object does not support item assignment
a
는 리스트 b
는 튜플 타입임을 확인했다.
그리고 a
의 0번째 인덱스를 9로 정의하니 인덱스 내용이 정상적으로 변경 되었다.
하지만 b
를 같은 방법으로 정의하려고 하자 에러가 발생한다.
이게 가장 큰 차이점이라고 할 수 있다.
>>> b = 1,2,3,4,5
>>> b
(1, 2, 3, 4, 5)
변수 하나에 여러 값을 집어 넣어도 튜플 형태이다.
>>> b = 1
>>> b
1
>>> b = 1,
>>> b
(1,)
>>> type(b)
<class 'tuple'>
하나짜리 튜플을 생성할 때에는 ,
로 구분지어주면 생성이 된다. ,
없이 하나의 요소만 달랑 변수에 입력하려고 하면 그냥 그 값이 변수에 저장된다.
패킹 : 튜플로 만드는 작업
언패킹 : 튜플에서 값을 꺼내는 작업
튜플화 시키는 것
>>> a = 1,2,3,4
>>> a
(1, 2, 3, 4)
튜플에서 값을 꺼내는 것
>>> a1, a2, a3, a4 = a
>>> a1
1
>>> a2
2
>>> a3
3
>>> a4
4
튜플에서 사용하는 메소드
A.count(x)
는 튜플 A
에 담긴 항목 x
의 갯수를 반환한다.
>>> a = 1, 5, 7, 8, 9, 4, 1, 4
>>> a.count(4)
2
index(x)
메소드는 항목 x
의 인덱스 위치를 반환한다.
>>> a = 1, 5, 7
>>> a.index(5)
1
리스트와 똑같다.
>>> a = 1,2,3
>>> a[0]
1
>>> a[0:2]
(1, 2)