'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
#1 楼
Python 2您需要使用类似
iteritems
的内容。 br />因为不再支持Python 3 items()
。请改用iteritems()
。for field, possible_values in fields.iteritems():
print field, possible_values
#2 楼
对于Python 3.x,iteritems
已被删除。请改用物品。for field, possible_values in fields.items():
print(field, possible_values)
#3 楼
您要使用迭代项。这会在字典上返回一个迭代器,从而为您提供一个元组(键,值)字典。
>>> for field, values in fields.iteritems():
... print field, values
...
first_names ['foo', 'bar']
last_name ['gravy', 'snowman']
#4 楼
对于列表,请使用enumerate
for field, possible_values in enumerate(fields):
print(field, possible_values)
iteritems
不适用于列表对象评论
至少应该是python 2.7的正确答案(经过测试)。
–粪
19年5月13日在17:36
#5 楼
不能直接在字典中进行迭代。这样就可以通过转换为元组了。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)
评论
请解释您的答案。
– Maciej Jureczko
17-10-18在7:52
不能直接在字典中进行迭代。因此您可以通过转换为元组。
– satya narayan pardhi
17-10-19在5:01
#6 楼
您的代码中缺少fields.iteritems()
。#7 楼
在Python3中,不再支持iteritems()
使用
.items
for field, possible_values in fields.items():
print(field, possible_values)
评论
据我所知,enumerate()实际上将索引存储在字段所在的位置。
–Jesse Reza Khorasanee
20年7月22日在6:15
#8 楼
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)
评论
欢迎使用Stack Overflow!通常,如果答案包括对代码意图的解释,以及为什么不引入其他代码就能解决问题的原因,则答案会更有帮助。
–蒂姆·迪克曼(Tim Diekmann)
18年4月4日在8:33
评论
至于为什么需要这样做,遍历字典将遍历键,而不是键/值对。
–杰夫·梅卡多(Jeff Mercado)
2011-3-29在0:35
@jeffm令我困惑。我将其视为PHP foreach。
–tipu
2011-3-29在16:23