일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- sklearn
- 경력 기술서
- 데이터사이언스
- 파라미터 튜닝
- 코딩테스트
- 머신러닝
- 사이킷런
- AutoML
- 자기소개서
- 이력서 첨삭
- 데이터사이언스학과
- 주요 파라미터
- 하이퍼 파라미터 튜닝
- 퀀트
- 하이퍼 파라미터
- pandas
- 데이터사이언티스트
- 주가데이터
- 판다스
- 대학원
- 경력기술서 첨삭
- 데이터 사이언스
- 랜덤포레스트
- 데이터 사이언티스트
- 데이터분석
- 주식데이터
- 파이썬
- 퀀트 투자 책
- 커리어전환
- 베이지안 최적화
- Today
- Total
GIL's LAB
ValueError: too many values to unpack, ValueError: not enough values to unpack 해결 방법 본문
ValueError: too many values to unpack, ValueError: not enough values to unpack 해결 방법
GIL~ 2023. 8. 7. 09:50문제 상황
ValueError: too many values to unpack는 저장할 값의 개수가 변수 개수보다 많은 경우 발생하는 에러입니다.
간단한 예제를 살펴보겠습니다.
x, y, z = 1, 2, 3, 4
[실행 결과]
ValueError: too many values to unpack (expected 3)
위 코드에서 변수는 x, y, z로 세 개인데, 여기에 입력되는 값이 1, 2, 3, 4라서 오류가 발생했습니다.
반대로 ValueError: not enough values to unpack는 저장할 값의 개수가 변수 개수보다 적은 경우 발생하는 에러입니다.
역시 간단한 예제를 살펴보겠습니다.
x, y, z = 1, 2
[실행 결과]
ValueError: not enough values to unpack (expected 3, got 2)
에러에서 알 수 있듯이, 세 개의 값이 필요한데 두 개만 들어왔다고 오류가 발생합니다.
해결 방법
가장 좋은 해결책은 다음과 같이 저장할 값의 개수와 변수 개수를 일치시키는 것입니다.
x, y, z = 1, 2, 3
그런데 몇 개의 값이 들어올지 확신할 수 없는 경우가 있습니다. 예를 들어, split 함수를 써서 문자열을 분리하고 앞 두 개 값만 가져오고 싶다고 해보겠습니다.
s = "1/2/3"
x, y, _ = s.split('/')
우리가 관심있는 변수는 x와 y이고, 나머지 하나는 사용하지 않을 것이므로 언더바(_)로 값을 받았습니다.
그런데 앞 두 개는 확실히 필요한데, /의 개수를 알 수 없는 경우 혹은 /가 너무 많아서 변수를 일일이 지정하기 어려운 경우에는 어떻게 할까요?
즉, 아래와 문자열이 있다고 해보겠습니다.
s = "1/2/3/4/5/6/7/8/9/10"
우리에게는 맨 앞 두개만 필요하므로 다음과 같이 처리할 수 있을 것입니다.
x, y, _, _, _, _, _, _, _, _ = s.split('/')
코드가 쓸데없이 길어져서 가독성을 헤치고 어차피 필요없는 변수들인데 일일이 _ 처리하는 것도 귀찮습니다.
이러한 경우에는 애스터리스크(*)를 사용하면 손쉽게 처리할 수 있습니다.
x, y, *_ = s.split('/')
print(x, y)
print(_)
[실행 결과]
1 2
['3', '4', '5', '6', '7', '8', '9', '10']
위 결과에서 알 수 있듯이, 변수 앞에 *를 붙이면 나머지 값들을 모두 리스트 형태로 가져오게 됩니다.
데이터 분석 서비스가 필요한 분은 아래 링크로!
'파이썬 > 환경설정 및 오류 해결' 카테고리의 다른 글
Scikit-learn NotFittedError (0) | 2023.08.07 |
---|---|
파이썬 개발 환경 구축: 아나콘다와 주피터 노트북 (1) | 2022.01.09 |
주피터 노트북 실행 결과 초기화 방법 (0) | 2021.09.05 |
주피터 노트북 기본 경로 설정, 브라우저 설정, 기타 오류 해결 (0) | 2021.09.03 |