Programing

압축을 풀기에는 너무 많은 값이 있습니다.

lottogame 2020. 3. 22. 10:36
반응형

압축을 풀기에는 너무 많은 값이 있습니다. 키 => 문자열, 값 => 목록


나는 점점 오전 '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              

iteritems 와 같은 것을 사용해야합니다 .

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

파이썬 버전에서을 사용하는 것과 같은 사전을 반복하는 방법에 대한 자세한 내용 이 답변참조하십시오 items().

편집
이후 파이썬 3 iteritems ()이되어 더 이상 지원되지 않습니다 . items ()를 대신 사용하십시오.

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

Python 3.x iteritems가 제거되었습니다. 대신 항목사용하십시오 .

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

iteritems 를 사용하려고합니다 . 이것은 사전에 반복자를 반환하여 튜플 (키, 값)을 제공합니다

>>> 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 목록 객체에는 작동하지 않습니다


Python3 iteritems()에서는 더 이상 지원되지 않습니다

솔루션 1 :

사용하다 .items

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

솔루션 2 :

당신은 사용할 수 있습니다 enumerate()뿐만 아니라

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

사전에서 직접 반복 할 수 없습니다. 그래서 당신은 tuple로 변환을 통해 할 수 있습니다 .

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)

fields.iteritems()코드에서 누락되었습니다 .

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

for key in fields:
    value = fields[key]

data = (['President','George','Bush','is','.'],['O','B-PERSON','I-PERSON','O','O'])
corpus = []
for(doc,tags) in data:
    doc_tag = []
    for word,tag in zip(doc,tags):
        doc_tag.append((word,tag))
        corpus.append(doc_tag)
        print(corpus)

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

반응형