튜플은 리스트와 마찬가지로 sequence 자료형이며 리스트와 매우 유사하지만 원소의 삭제, 수정 등 변경이 불가능하다. 그러므로 튜플은 상수에 사용하기 적합하다. 리스트와 마찬가지로 원소마다 index가 0부터 순차적으로 할당되며 index를 통해 원소에 접근할 수 있다. 튜플은 일반적으로 ()로 선언한다. 튜플 선언시 주의할 점으로는 원소가 하나인 경우 마지막에 콤마(,)를 입력해 주어야 튜플로 선언된다는 것이다.
다음은 다양하게 선언한 튜플 예제이다.
- tup0 = ()
- tup1 = ('one','two', 'three')
- tup2 = 'one', 'two', 'three',
- tup3 = tuple([1,2])
- tup4 = ('one','two', 'three', ('for', 'five'))
- tup5 = ('one',)
- tup6 = 'one',
튜플은 리스트와 마찬가지로 원소가 없거나, 튜플 안에 튜플을 가질 수도 있다. 또한, 여러가지 타입의 자료형을 원소로 가질 수 있다.
원소에 접근하려면 리스트와 동일하게 대괄호([]) 안에 index를 입력하면 된다.
음수 index로 접근이 가능하고 일정 범위만큼 자르는 슬라이스도 가능하다.
- tup = ('one', 'two', 'three', 4, 5)
- print("tup[0] : ", tup[0]) # tup[0] : one
- print("tup[0:2] : ", tup[0:2]) # tup[0:2] : ('one', 'two')
- print("tup[:2] : ", tup[:2]) # tup[:2] : ('one', 'two')
- print("tup[2:] : ", tup[2:]) # tup[2:] : ('three', 4, 5)
새로운 변수에 튜플을 대입한 경우 리스트와 마찬가지로 사용된 메모리에 두개의 변수가 참조한다.
- tup = ('one', 'two', 'three', 4, 5)
- tup1 = tup
- print(hex(id(tup1))) # 0x3ccc5c
- print(hex(id(tup))) # 0x3ccc5c
튜플의 앞서 말하였듯이 원소의 값을 변경하거 삭제 할 수 없다. 다시 말하면 리스트의 index를 변경할 수 있는 메소드인 append(),pop(), remove() 등은 존재하지 않지만 두 튜플을 연결하는 + 연산자와 반복하는 * 연산자는 존재한다.
- tup = ('one', 'two', 'three', 4, 5)
- tup1 = tup + (6, 7)
- tup2 = tup + (6,)
- tup3 = tup * 2
- print("tup1 : ", tup1) # tup1 : ('one', 'two', 'three', 4, 5, 6, 7)
- print("tup2 : ", tup2) # tup2 : ('one', 'two', 'three', 4, 5, 6)
- print("tup3 : ", tup3) # tup3 : ('one', 'two', 'three', 4, 5, 'one', 'two', 'three', 4, 5)
내장함수
함수 | 설명 |
cmp() | 두 튜플을 비교한다. syntax cmp(tuple1, tuple2) * python3 이상 부터는 더 이상 cmp 함수를 지원하지 않는다. cmp를 사용해야 하는 경우라면 아래와 같이 함수로 정의해서 사용 할 수 있다.
|
len() | 튜플의 원소 수를 반환한다. syntax len(tuple) example
|
max() | 튜플의 원소 중 최대 값을 반환한다. python2,3 에서 max() 함수의 가장 큰 차이점은 python2에선 원소의 자료형이 달라도 사용 가능했지만 python3에서는 같은 자료형에 대해서만 사용 가능하고 자료형이 같지 않으면 typeError가 난다. syntax max(tuple) example
|
min() | 튜플의 원소중 최소값을 반환한다. python2, 3 의 차이점은 max() 함수와 동일하다. syntax min(tuple) example
|
tuple() | tuple()는 시퀀스 자료형을 인수로 받아 새로운 튜플로 변환하여 대입한다. tuple()은 리스트를 튜플로 변환할때 사용한다. syntax tuple(seq) example
|