본문 바로가기

파이썬/사용법

[python] 튜플(Tuple) 완전 정복: 선언부터 언패킹까지 핵심 개념 정리

안녕하세요! 이번 글에서는 파이썬의 튜플에 대해서 알아보려고 합니다.

튜플이랑 비슷해서 자주  언급 되는 자료형은 리스트가 있는데요

인덱싱, 슬라이싱이 가능한 데이터 유형을 시퀀스 타입이라고 합니다. [리스트 튜플 range]

리스트와 문자열에는 인덱싱 및 슬라이싱 작업과 같은 공통 속성이 존재함을 알아봤습니다.

튜플도 시퀀스 타입이기 때문에 인덱싱과 슬라이싱이 가능합니다.

 

오늘은 튜플의 선언과 기능 그리고 특이점을 중심으로 글을 작성해 보겠습니다.

 

1) 튜플 선언(assignment)

튜플은 다른 타입의 값과 함께 여러 가지 data를 담을 수 있는 compound data types입니다

튜플은 값을 여러 개 담을 수 있으며 콤마로 값을 구분해 주면 튜플로 인식을 합니다.

>>> mytuple = 1,2,3 # 튜플을 선언하는 방식
>>> print(type(mytuple),mytuple)
<class 'tuple'> (1, 2, 3)

# 괄호를 붙여도 되고 안붙여도 되지만 핵심은 콤마
>>> mytuple = (1,2,3)
>>> print(type(mytuple),mytuple)
<class 'tuple'> (1, 2, 3)

2) 튜플 nested 중첩

>>> a = 1,2,"3"
>>> b = 4,5
>>> c = a + b
>>> c
(1, 2, '3', 4, 5)
>>> c = a,b
>>> c
((1, 2, '3'), (4, 5))

튜플은 중첩이 가능합니다.

, 로 concatenate 하면 리스트의 append 메서드처럼 그대로 집어넣어 줍니다.

+로 concatenate 하면 리스트의 extend 메서드를 사용하는 것처럼 풀어서 넣어줍니다.

 

[python] 리스트 메서드 정리

안녕하세요! 이번 글에서는 파이썬의 리스트 메서드에 대해서 알아보려고 합니다. 파이썬은 여러 가지 리스트 메서드를 제공합니다. 추가, 삽입,삭제, 위치 찾기, 개수 찾기, 정렬, 뒤집기, 키워

newbienew.tistory.com

리스트의 extend 메서드가 기억이 안 나신다면 방문해서 글을 읽어주세요 

리스트와 비슷한 내용들이 나오기에 리스트를 알아주셔야 이해가 편합니다.

3) 튜플의 item 수정하기

>>> a = [1,2,3]
>>> b = 4,5
>>> c = a,b
>>> c[1][1] = 7
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

튜플의 값을 수정하려고 했더니 오류가 발생하였습니다.

>>> a = [1,2,3]
>>> b = 4,5
>>> c = a,b
>>> c[0][1] = 4
>>> c
([1, 4, 3], (4, 5))

그렇지만 튜플 안에 있는 리스트는 값이 변경이 가능했습니다.

리스트가 muttable 한 data type이라 그런 것 같습니다.

 

4) 튜플 선언 시의 특이점 

튜플을 선언하지 않거나 1개의 아이템을 가진 튜플을 선언할 경우 지켜야 할 관례가 있습니다.

>>> single_item_tuple = (1)
>>> type(single_item_tuple)
<class 'int'>

>>> single_item_tuple = ("1")
>>> type(single_item_tuple)
<class 'str'>

>>> single_item_tuple = (1,)
>>> type(single_item_tuple)
<class 'tuple'>

위의 예시를 보시면 1개의 아이템을 튜플로 하고싶을 때 콤마를 붙여주지 않으면

single value 자체의 type으로 인식해버리는 모습입니다

 

, 붙여줍시다!!

 

 

5) 튜플의 값을 여러 개의 변수에 분배할 수 있습니다.

왼쪽에 튜플의 값만큼 변수가 있어야 합니다.

이 분배하는 과정을 언패킹(unpacking)한다고 합니다.

>>> triple = 'a','b','c'
>>> a,b,c = triple
>>> a
'a'
>>> b
'b'
>>> c
'c'

정리) 

튜플은 선언 시에 값을 쉼표로 구분하고 

item이 0개인 경우는 () 괄호를 사용해 주고 

item이 1개인 경우는 traliling comma를 써준다.

슬라이싱 인덱싱 지원한다 -> 시퀀스 타입이니까

concatenate 지원하는데 + 는 append처럼 comma는 extemd처럼 작용한다.

튜플 안에 뮤터블 한 데이터가 있으면 수정이 가능한 거 같다.

마치면서)

 

파이썬 공식 문서에서 튜플과 예제를 찾아보시면 더욱 자세한 정보를 얻을 수 있습니다. 

 

이로써 파이썬 튜플에 대한 내용을 마치겠습니다. 
다음 글에서도 유용한 파이썬 팁과 기능을 소개하도록 하겠습니다

감사합니다.