본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 116. ValueError - too many values to unpack (expected 2)

by about_IT 2025. 6. 2.
728x90

ValueError: too many values to unpack (expected 2) 오류는 파이썬에서 변수 개수보다 더 많은 값을 할당하려고 할 때 발생합니다. 특히 튜플이나 리스트를 다룰 때 구조 분해 할당(unpacking)을 잘못 사용하면 이 오류가 나타납니다.

예를 들어 반복문에서 튜플 데이터를 언팩할 때, 값의 개수와 변수의 수가 일치하지 않으면 ValueError가 발생하게 됩니다.

● 오류 발생 예시

data = [(1, 2, 3), (4, 5, 6)]
for x, y in data:
    print(x, y)

위 코드에서는 각 튜플이 3개의 요소를 가지는데 변수는 2개만 있어 too many values 오류가 발생합니다.

● 주요 원인

  • 리스트나 튜플에서 구조 분해 할당 시 변수 수 부족
  • zip, enumerate 등 결과 처리 시 변수 수 일치하지 않음
  • 함수 반환값이 예상보다 많거나 적을 때

● 해결 방법

  • 변수 수를 정확히 일치시키거나, 필요 없는 값은 _로 무시
  • 변수 앞에 *를 붙여 나머지 값을 한 변수에 담기
  • 반환값 또는 반복값의 구조를 사전에 확인

● 예시 코드 (정상 처리)

data = [(1, 2, 3), (4, 5, 6)]
for x, y, z in data:
    print(x, y, z)
for x, y, _ in data:
    print(x, y)

● 결론

언팩 오류는 변수 수와 데이터 구조가 일치하지 않을 때 발생합니다. 코드 작성 시 데이터의 구조를 명확히 파악하고, 변수 개수를 맞추는 것이 핵심입니다.

728x90