튜플은 몇 가지를 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.
- 리스트는 대괄호( [ ] )로 둘러싸지만 튜플은 괄호 ( )로 둘러싼다.
- 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
a1 = ()
a2 = (1,)
a3 = (1, 2, 3)
a4 = 1, 2, 3
a5 = ('a', 'b', ('c', 'd'))
리스트와 모습은 거의 비슷하지만 위의 예시에서 리스트와 다른 2가지 차이점을 볼 수 있다.
1. a2 = (1,) 처럼 1개의 요소만 가질 때는 요소 뒤에 콤마(,)를 반드시 붙여야 한다.
2. a4 = 1, 2, 3 처럼 괄호( )를 생략해도 무방하다.
튜플의 요솟값은 한 번 정하면 지우거나 변경할 수 없다. 만약 프로그램이 실행되는 동안 그 값이 바뀔까 걱정하고 싶지 않으면 튜플을 사용해야한다.
1. 튜플 요솟값을 삭제하려 할 때
a1 = (1, 2, 'a', 'b')
del a1[0]
튜플의 요소를 리스트처럼 del 함수로 지우려고 한 예이다. 튜플은 요소를 지우는 것을 지원하지 않는다는 메세지가 출력된다.
2. 튜플 요솟값을 변경하려 할 때
a1 = (1, 2, 'a', 'b')
a1[0] = 'c'
튜플의 요솟값을 변경하려고 해도 마찬가지로 오류가 발생한다.
a1 = (1, 2, 'a', 'b')
a1[0]
>>> 1
a1 튜플의 첫 번째자리에 있는 1이 출력된다.
a1 = (1, 2, 'a', 'b')
a1[1:]
>>> (1, 'a', 'b')
a1[1]부터 튜플의 마지막 요소까지 슬라이싱하며 결과로 (2, 'a', 'b')가 출력된다.
문자열, 리스트와 마찬가지로 튜플도 인덱싱, 슬라이싱이 가능하다.
a1 = (1, 2, 'a', 'b')
a2 = (3, 4)
a1 + a2
>>> (1, 2, 'a', 'b', 3, 4)
a1 = (3, 4)
a1 * 3
>>> (3, 4, 3, 4, 3, 4) #튜플의 곱하기(반복)예를 보여준다.
a1 = (1, 2, 'a', 'b')
len(a1)
>>> 4