튜플은 리스트와 거의 같은 기능을 가지지만 리스트와 달리 불변(Immutable) 타입이라는 특징을 가진다.

리스트가 보통 같은 타입의 데이터를 저장하며 데이터의 접근 또한 iterating의 형태로 이루어진다면

튜플은 대개 다른 타입의 데이터들을 저장하고 indexing이나 unpacking의 형태로 접근하는 경우가 많다.

딕셔너리(Dictionary)나 집합(Set)에 사용하는 경우 튜플에 같은 타입의 데이터를 저장하는 경우도 있다.

 

선언

my_tuple = (1, 2, 3, 4, 5)	# 길이 5의 튜플이 생성된다
my_tuple2 = (1)			# 튜플이 아닌 값 1을 가지는 숫자형 변수가 된다
my_tuple3 = (1,)		# 길이 1의 튜플이 생성된다
my_tuple4 = 1, 2, 3, 4		# 길이 4의 튜플이 생성된다

 튜플을 선언 및 초기화할 때는 데이터를 콤마(,)로 구분해주면 된다. 괄호는 넣어도 넣지않아도 상관없다.

다만 유의해야할 점은 단순히 괄호안에 하나의 데이터를 넣으면 튜플이 아니라 그 데이터를 가리키는 

단순한 변수가 되기때문에 크기 1의 튜플을 만들고싶다면 위 코드처럼 콤마(,)를 넣어줘야한다.


언패킹 (Unpacking)

my_info = ('scala', 27, (95, 80, 97))
my_name, my_age, my_score = my_info
print(my_name)	# 실행결과 : scala
print(my_age)	# 실행결과 : 27
print(my_score) # 실행결과 : (95, 80, 97)

 튜플의 데이터 접근에 주로 사용되는 방식으로 언급했던 언패킹(Unpacking) 방식이다. 

좌변에 나열한 변수들에 튜플에 저장된 순서대로 값을 저장한다.  언패킹 대상 변수의 수가 튜플의 크기와
일치하지 않을 경우에는 에러가 발생한다.  당연하게도 언패킹은 리스트에서도 똑같이 사용 가능하다. 

 


 튜플은 기본적으로 immutable하다는 점을 제외하면 리스트와 거의 다른 점이 없기때문에 
리스트의 기능 중 값을 변경하지 않는 것들은 모두 튜플에서도 사용 가능하며 리스트와의
비교연산 또한 가능하다.

 

'언어 > Python' 카테고리의 다른 글

#5 집합(Set)  (0) 2021.03.02
#4 딕셔너리(Dictionary)  (0) 2021.02.25
#2 리스트(List)  (0) 2021.02.24
#1 기본적인 문법  (0) 2021.02.23
0# Python 공부시작  (0) 2021.02.23

+ Recent posts