Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python) 튜플 언패킹(Tuple Unpacking)이란? 개념부터 예제까지


튜플(Tuple)이란 무엇인가?

튜플 언패킹을 이해하기 전에, 먼저 튜플이 무엇인지 짚고 넘어갈 필요가 있습니다.

튜플(Tuple): 파이썬에서 튜플은 변경 불가능한(immutable) 객체를 저장하는 데 사용되는 시퀀스(sequence) 자료형입니다. 튜플은 한 번 생성하면 내부의 요소를 수정하거나 삭제할 수 없으며, 리스트와 달리 소괄호 ( )를 사용하여 정의합니다.

튜플 패킹과 언패킹의 차이

패킹(Packing)은 여러 개의 값을 하나의 새로운 튜플에 담는 과정을 말합니다. 반대로 언패킹(Unpacking)은 튜플에 담겨 있는 값들을 개별 변수 하나하나로 꺼내어 할당하는 과정을 의미합니다. 즉, 등호(=) 오른쪽(RHS)에 있는 튜플의 값들을 왼쪽(LHS)의 변수들에 대입하는 것이 바로 튜플 언패킹입니다.

언패킹 시에는 반드시 지켜야 할 규칙이 있습니다. 왼쪽의 변수 개수와 튜플에 담긴 값의 개수가 정확히 일치해야 합니다. 개수가 서로 다르면 ValueError가 발생하므로 주의해야 합니다.

예제 1

tuple = ("Tutorials Point", 132, "Employees")  # 튜플 패킹
(companyname, Employerscount, Information) = tuple  # 튜플 언패킹
print(companyname)
print(Employerscount)
print(Information)

출력 결과

Tutorials Point
132
Employees

위 예제에서 세 개의 값("Tutorials Point", 132, "Employees")이 하나의 튜플로 패킹된 후, 언패킹을 통해 각각 companyname, Employerscount, Information 변수에 순서대로 할당되었습니다.

예제 2

tuple = ("RRS College of Engg and Technology", 6000, "Engineering")  # 튜플 패킹
(college, student, graduates) = tuple  # 튜플 언패킹
# 대학 이름 출력
print(college)
# 학생 수 출력
print(student)
# 계열 정보 출력
print(graduates)

출력 결과

RRS College of Engg and Technology
6000
Engineering

참고: 별표(*)를 활용한 확장 언패킹

변수 개수와 값의 개수가 항상 일치하지 않는 경우에는 별표(*)를 사용한 확장 언패킹을 활용할 수 있습니다. 예를 들어 a, *b = (1, 2, 3, 4)와 같이 작성하면 a에는 첫 번째 값인 1이, b에는 나머지 값들이 리스트 형태로 [2, 3, 4]와 같이 할당됩니다. 이 기법을 활용하면 유연하게 튜플의 값을 처리할 수 있습니다.