我收到了'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
Run Code Online (Sandbox Code Playgroud)
Phi*_*ham 427
for field, possible_values in fields.iteritems():
print field, possible_values
Run Code Online (Sandbox Code Playgroud)
有关迭代字典的更多信息,请参阅此答案,例如iteritems
跨python版本使用.
编辑
自Python 3以来,不再支持 iteritems().请改用items().
for field, possible_values in fields.items():
print(field, possible_values)
Run Code Online (Sandbox Code Playgroud)
Mei*_*tro 72
对于Python 3.x iteritems
已被删除.请改用物品.
for field, possible_values in fields.items():
print(field, possible_values)
Run Code Online (Sandbox Code Playgroud)
Mik*_*wis 37
你想使用iteritems.这会在字典上返回一个迭代器,它会为你提供一个元组(键,值)
>>> for field, values in fields.iteritems():
... print field, values
...
first_names ['foo', 'bar']
last_name ['gravy', 'snowman']
Run Code Online (Sandbox Code Playgroud)
你的问题是你在字段上循环,它返回字典的键.
>>> for field in fields:
... print field
...
first_names
last_name
Run Code Online (Sandbox Code Playgroud)
小智 8
对于列表,请使用 enumerate
for field, possible_values in enumerate(fields):
print(field, possible_values)
Run Code Online (Sandbox Code Playgroud)
iteritems
不适用于列表对象