我收到'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
答案 0 :(得分:383)
您需要使用类似iteritems的内容。
for field, possible_values in fields.iteritems():
print field, possible_values
有关在python版本中迭代字典(例如使用items()
)的更多信息,请参阅this answer。
修改的
由于 Python 3 iteritems()是no longer supported。改为使用items()。
for field, possible_values in fields.items():
print(field, possible_values)
答案 1 :(得分:65)
对于Python 3.x iteritems
已被删除。请改用items。
for field, possible_values in fields.items():
print(field, possible_values)
答案 2 :(得分:35)
您想使用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
答案 3 :(得分:7)
对于列表,请使用enumerate
for field, possible_values in enumerate(fields):
print(field, possible_values)
iteritems
不适用于列表对象
答案 4 :(得分:0)
不能直接在字典中迭代。所以你可以通过转换成元组。
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)
答案 5 :(得分:0)
您的代码中缺少fields.iteritems()
。
您也可以采用其他方式,使用字典中的键获取值。
for key in fields:
value = fields[key]
答案 6 :(得分:0)
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)
答案 7 :(得分:0)
在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)
答案 8 :(得分:0)
只是想我会把它扔进去。我今天突然出现“太多的值无法解压(预期为 2)”。真气不过是因为在选择列表中缺少一个逗号。
CapTextureChoices = [
("initial", ""),
("Shaggy", "Shaggy"),
("Wrinkled", "Wrinkled"),
("Striate," "Striate"),
("Downy", "Downy")
]
“条纹”之间缺少逗号,“条纹”是罪魁祸首