튜플

2025. 7. 8. 17:33Programming Language/Python

반응형

파이썬에서 튜플(Tuple)은 여러 개의 값을 하나로 묶어서 저장하는 자료형으로 리스트와 비슷하나 생성 후 값의 변경(수정, 추가, 제거)를 할 수 없다는 점이 다르다.

한마디로 불변(immutable)한 자료형이다.

 

튜플의 생성과 사용

튜플은 ()소괄호를 사용해서 만든다.

t1 = (1, 2, 3)
t2 = ('a', 'b', 'c')

 

이렇게 생성된 튜플은 리스트처럼 여러 타입의 값을 한번에 저장할 수 있다.

t3 = (1, 'a', 3.14, True)

 

또한 튜플을 생성할때 하나의 요소만 가지는 경우는 아래와 같이 정수의 형태로 인식한다

t = (1)
print(type(t)) # <class 'int'>

그렇기에 요소하나만 가지는 경우엔 뒤에 쉼표를 넣어줘야만 튜플로써 인식한다

t = (1,)
print(type(t)) # <class 'tuple'>

 

튜플은 인덱싱, 슬라이싱 등의 활용은 리스트와 동일하다.

t = (1, 2, 3)

print(t[0])    # 1
print(t[0:3])  # (1, 2, 3)

 

다만 튜플은 생성된 순간부터 요소들의 변경이 불가능하다.

t = (1, 2, 3)
t[0] = 3;


#Traceback (most recent call last):
#  File "D:\pythonPrac\pythonProject1\test.py", line 2, in <module>
#    t[0] = 3;
#    ~^^^
#TypeError: 'tuple' object does not support item assignment

 

 

이래서 뭐 써먹겠나 싶지만 이 튜플은 성격에 맞게 여러개의 값을 한번에 리턴하거나 값이 고정되어야 하는 집합(좌표, RGB값 등) 혹은 딕셔너리의 키로 사용된다.

 

주요 사용 예

1. 언패킹(여러 변수에 한 번에 할당)

튜플에 담긴 값을 한 번에 여러 변수에 할당하는 방식이다

a, b, c = (1, 2, 3)
print(a, b, c)   # 1 2 3

 

2. 함수 리턴값 여러 개 받을 때 

파이썬에서는 함수에서 값을 여러 개 return할 수있는데 이때 내부적으로 튜플 형태로 반환된다.

def get_point():
    return 3, 5   # (3, 5)와 같다

# 이렇게 여러 변수에 한 번에 값을 받을 수 있다.
x, y = get_point()  #x=3, y=5로 자동으로 나눠서 할당(언패킹)
print(x)   # 3
print(y)   # 5

 

 

3. 딕셔너리의 키로 활용

리스트의 경우는 값을 바꿀 수 있기 때문에 키로 사용할 수 없으나 튜플의 경우는 바꿀수 없기에 키로 사용된다.

d = {}
d[(1, 2)] = '좌표' # key값으로 (1, 2)라는 튜플을 사용
print(d[(1,2)])    # '좌표'


# 실제 좌표별 데이터를 저장하고 싶을 때
# (행, 열) : 값
matrix = {}
matrix[(0, 0)] = 1
matrix[(0, 1)] = 2
matrix[(1, 0)] = 3

print(matrix[(1, 0)])   # 3

만약 리스트를 키로 사용하려고 한다면 에러가 발생한다.

 

이 튜플은 불변하기에 데이터의 안정성을 보장하고 해시값(딕셔너리, set의 키 등)으로 사용 가능하고 메모리/속도 효율성이 더 높다는 장점이 있다

반응형

'Programming Language > Python' 카테고리의 다른 글

딕셔너리  (0) 2025.07.08
리스트  (0) 2025.07.08
Windows에서 pyenv 사용하기  (2) 2024.11.28
설치 및 IDLE , IDE 사용  (1) 2023.12.02