파이썬 딕셔너리 for문에서 ValueError: too many values to unpack
조회수 4515회
n = int(input('Enter number of products : '))
prod = {}
for i in range(n):
ProductName = input('Enter product name : ')
ProductPrice = int(input('Enter its price : '))
prod[ProductName] = ProductPrice
print(prod) #prod = {'prod1': 100, 'prod2': 200, 'prod3': 300}
ProductName = input('enter price')
print(ProductName)
for ProductName, prod[ProductPrice] in prod:
if prod[ProductName] < ProductName:
print(ProductName)
ProductName 에 200을 입력했을때 200 보다 작은 100값을 갖고 있는 prod1을 출력하고 싶은데 에러가 발생합니다. 도움 부탁드립니다.
Traceback (most recent call last):
File "C:/2학년 파일/건설플랜트입문/#11.Dictionaries_Exercise/#2.py", line 28, in <module>
for ProductName, prod[ProductPrice] in prod:
ValueError: too many values to unpack (expected 2)
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
dictionary는 for loop에서 key을 반환합니다.
key, value 둘 다 동시에 사용하고 싶으면 아래와 같이 사용하세요.d = {'a': 1, 'b': 2, 'c': 3} for k in d: print(k) # 'a', 'b', 'c' for k, v in d.items(): print((k, v)) # ('a', 1), ('b', 2), ('c', 3)
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
prod = {'prod1': 100, 'prod2': 200, 'prod3': 300} _input = 200 for key in prod: # if prod[key] < _input: print(key)
#
에서보면prod
는 딕셔너리의 키값prod1, prod2, prod3
값을 갖고 있기에 2개로 unpack 할수가 없는게 에러의 내용입니다.
댓글 입력