programing

'풀 수 있는 값이 너무 많다'는 식으로 반복됩니다.key=> 문자열, 값=> 목록

shortcode 2023. 1. 19. 07:21
반응형

'풀 수 있는 값이 너무 많다'는 식으로 반복됩니다.key=> 문자열, 값=> 목록

나는 그것을 얻을 것이다.too many values to unpack오류입니다. 어떻게 고칠 수 있을까요?

first_names = ['foo', 'bar']
last_names = ['gravy', 'snowman']

fields = {
    'first_names': first_names,
    'last_name': last_names,
}        

for field, possible_values in fields:  # error happens on this line

파이썬 3

를 사용합니다.

for field, possible_values in fields.items():
    print(field, possible_values)

파이썬 2

를 사용합니다.

for field, possible_values in fields.iteritems():
    print field, possible_values

사전에서 반복하는 방법에 대한 자세한 내용은 이 답변을 참조하십시오(예:items(), Python 버전에 걸쳐 있습니다.

참고로 Python 3에서는 삭제되었습니다.

Python 3.x의 경우iteritems가 삭제되었습니다.대신 항목을 사용하십시오.

for field, possible_values in fields.items():
    print(field, possible_values)

반복 아이템을 사용하고 싶다.이렇게 하면 사전 위에 반복기가 반환되어 튜플(키, 값)을 얻을 수 있습니다.

>>> for field, values in fields.iteritems():
...     print field, values
... 
first_names ['foo', 'bar']
last_name ['gravy', 'snowman']

문제는 사전의 키를 반환하는 필드를 루프하는 것이었습니다.

>>> for field in fields:
...     print field
... 
first_names
last_name

리스트의 경우는,enumerate

for field, possible_values in enumerate(fields):
    print(field, possible_values)

iteritems목록 개체에 대해 작동하지 않습니다.

너는 실종되었다fields.iteritems()당신의 코드로.

사전의 키를 사용하여 값을 얻는 다른 방법도 있습니다.

for key in fields:
    value = fields[key]

사전에서 직접 반복할 수 없습니다.그러니까 태플로 변환해서 할 수 있어요.

first_names = ['foo', 'bar']
last_names = ['gravy', 'snowman']

fields = {
    'first_names': first_names,
    'last_name': last_names,
         } 
tup_field=tuple(fields.items())
for names in fields.items():
     field,possible_values = names
     tup_possible_values=tuple(possible_values)
     for pvalue in tup_possible_values:
           print (field + "is" + pvalue)

Python3의 경우iteritems()지원되지 않게 되었습니다.

사용하다.items

for field, possible_values in fields.items():
    print(field, possible_values)

그냥 이걸 던져버릴까 해서요오늘 '풀어야 할 가치가 너무 많다(예상치 2)'는 메시지가 뜬다.짜증나지만 선택 목록에서 쉼표를 놓쳤기 때문이다.

CapTextureChoices = [
("initial", ""),
("Shaggy", "Shaggy"),
("Wrinkled", "Wrinkled"),
("Striate," "Striate"),
("Downy", "Downy")
]

"Striate", "Striate" 사이에 쉼표가 없는 것이 범인

언급URL : https://stackoverflow.com/questions/5466618/too-many-values-to-unpack-iterating-over-a-dict-key-string-value-list

반응형