기본 패턴
python
point = (10, 20)
x, y = point
values = [1, 2, 3, 4]
first, *middle, last = values설명
- 언패킹은 묶여 있는 여러 값을 여러 변수로 한 번에 꺼내는 문법입니다.
- 튜플과 리스트뿐 아니라 반복 가능한 객체에서 같은 패턴을 자주 씁니다.
- starred 표현식
*name은 나머지 여러 값을 리스트 형태로 받습니다. - 함수 호출에서도
*args,**kwargs처럼 언패킹을 써서 인수를 펼칠 수 있습니다.
짧은 예제
python
rgb = (255, 200, 0)
r, g, b = rgb
numbers = [10, 20, 30, 40, 50]
head, *body, tail = numbers
print(head, body, tail)빠른 정리
| 문법 | 의미 |
|---|---|
a, b = pair | 두 값을 두 변수에 나눔 |
a, *rest = seq | 첫 값과 나머지 분리 |
func(*items) | 시퀀스를 위치 인수로 펼침 |
func(**mapping) | 딕셔너리를 키워드 인수로 펼침 |
공식 참고: More on Defining Functions, Data Structures
주의할 점
언패킹은 매우 읽기 좋지만, 변수 개수와 데이터 개수가 맞지 않으면 오류가 납니다. 구조가 분명할 때만 쓰고, 길이가 불안정한 입력에는 starred 표현식을 고려하는 편이 좋습니다.