Python시작과 문법

언패킹과 starred 표현식

튜플, 리스트, 함수 인자에서 값을 자연스럽게 풀어 쓰는 Python 언패킹과 `*` 활용 패턴을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

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 표현식을 고려하는 편이 좋습니다.