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
'프로그래밍언어 > 파이썬[Error]' 카테고리의 다른 글
[파이썬][Error] 118. IndexError - boolean index did not match indexed array along dimension (0) | 2025.06.02 |
---|---|
[파이썬][Error] 117. KeyError - 'non_existing_column' (0) | 2025.06.02 |
[파이썬][Error] 115. TypeError - unhashable type: 'list' (0) | 2025.06.01 |
[파이썬][Error] 114. TypeError - unhashable type: 'list' (0) | 2025.06.01 |
[파이썬][Error] 113. NameError - name 'xrange' is not defined (0) | 2025.06.01 |