解包值过多',遍历字典时的键值对
我遇到了一个错误,提示是 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
8 个回答
40
你想使用 iteritems。这个方法会返回一个字典的迭代器,它会给你一个包含键和值的元组(key, value)。
>>> 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
89
在Python 3.x版本中,iteritems
这个功能已经被去掉了。你可以用items来代替它。
for field, possible_values in fields.items():
print(field, possible_values)
592
Python 3
使用 items()
方法。
for field, possible_values in fields.items():
print(field, possible_values)
Python 2
使用 iteritems()
方法。
for field, possible_values in fields.iteritems():
print field, possible_values
想了解更多关于如何遍历字典的信息,可以查看 这个回答,里面讲了在不同版本的Python中如何使用 items()
。
顺便提一下, iteritems()
在Python 3中被移除了。