튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하다. 리스트와 다른 점은 다음과 같다.

  • 리스트는 []으로 둘러싸지만 튜플은 ()으로 둘러싼다.
  • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.

tuple는 여러 부분 리스트와 매우 유사한데, 가장 큰 차이점은 tuple의 아이템은 변경이 불가(immutable)하다는 점이다.

 
tempTuple = (1,2,3,4,5)
 
  
 
print(tempTuple)
 
type(tempTuple)
 

(1, 2, 3, 4, 5)

  

tuple

인덱싱과 슬라이싱은 리스트와 비슷하다. 다만 주의해야 하는 점이 있다.

요소가 하나 있는 튜플 만들기

튜플에 선언에 있어 ()를 사용하고 있기 때문에 (8)과 같이 선언을 할경우 파이썬은 괄호를 연산자 라 판단한다. 따라서 우리가 하나의 튜플 요소를 선언할 경우 (8,) 다음과 같이 명확히 알려주는 문법을 사용해야 한다.

notTuple = (8)
print("[notTuple]", notTuple, type(notTuple))
 
minTuple = (8,)
print("[minTuple]", minTuple, type(minTuple))
[notTuple] 8 <class 'int'>
[minTuple] (8,) <class 'tuple'>

튜플 안에 리스트

튜플은 기본적으로 수정이 불가하다고 생각하지만, 만약 튜플 안에 리스트 가 있다면 리스트 내의 요소를 바꿀 수 있다.

sampleList = (["Python", 'B'], ["C++", 'B'])
 
# 튜플 안 리스트의 요소를 바꾸고 있으므로 가능하다.
sampleList[0][1] = 'A'
 
# 튜플의 요소를 바꾸고 있으므로 불가능 하다.
sampleList[0] = ["Python", 'B'] # Erron in this statement