튜플 언패킹(Tuple Unpacking)은 튜플에 저장된 값을 여러 변수에 한 번에 할당하는 작업을 의미한다. 즉, 튜플의 각 요소를 개별 변수로 분리하여 할당하는 것을 말한다. 이 과정은 간결하게 여러 값을 동시에 처리할 수 있어 매우 유용하다.
# 튜플 생성
my_tuple = (1, 2, 3)
# 튜플 언패킹
a, b, c = my_tuple
print(a) # 1
print(b) # 2
print(c) # 3
a, b, c = my_tuple
구문에 의해 튜플 언패킹이 일어나면서 튜플의 각 요소가 a
, b
, c
라는 변수에 각가 할당된다.
a
= 1
b
= 2
c
= 3
ValueError
가 발생한다.# 예시: 요소와 변수의 개수가 맞지 않는 경우
my_tuple = (1, 2, 3)
a, b = my_tuple # 오류 발생: ValueError: too many values to unpack
함수에서 여러 값을 반환할 때 튜플 언패킹을 사용하면 한 번에 여러 값을 받을 수 있다.
def get_coordinates():
return (10, 20)
x, y = get_coordinates() # 함수에서 반환된 튜플을 언패킹
print(x) # 10
print(y) # 20
a = 5
b = 10
# 튜플 언패킹을 이용한 값 교환
a, b = b, a
print(a) # 10
print(b) # 5
변수 앞에 밑줄(_
)을 사용하면 튜플 언패킹 시 일부 값을 무시할 수 있다.
my_tuple = (1, 2, 3, 4)
a, b, _ , _ = my_tuple # 3과 4는 무시
print(a) # 1
print(b) # 2
별표(*
)를 사용하면 여러 개의 값을 하나의 변수에 리스트로 받을 수 있다.
my_tuple = (1, 2, 3, 4, 5)
a, *b, c = my_tuple # 첫 번째와 마지막 값을 각각 할당하고, 중간 값을 리스트로 받음
print(a) # 1
print(b) # [2, 3, 4]
print(c) # 5
튜플 안에 튜플이 있는 경우, 중첩된 언패킹도 가능하다.
my_tuple = (1, (2, 3), 4)
a, (b, c), d = my_tuple
print(a) # 1
print(b) # 2
print(c) # 3
print(d) # 4