迭代字典时,必须了解正确的语法和方法。当尝试解压比可迭代中可用的值更多的值时,会出现错误“太多值无法解包”。
在给定的代码片段中:
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
发生错误是因为您尝试从通过迭代字典的键返回的单个元组中解压两个值(字段和可能的值)。要解决此问题,您有两种选择,具体取决于您的 Python 版本:
在 Python 3 中,使用 items() 方法迭代字典的键和值:
<code class="python">for field, possible_values in fields.items(): print(field, possible_values)</code>
在 Python 2 中,使用 iteritems() 方法而不是 items():
<code class="python">for field, possible_values in fields.iteritems(): print field, possible_values</code>
items() 和 iteritems()返回一系列键值对,允许在循环内进行正确的解包。
或者,如果您只需要字典中的键或值,则可以直接迭代它们:
# Iterate over keys for field in fields.keys(): print(field) # Iterate over values for possible_values in fields.values(): print(possible_values)
以上是如何解决 Python 字典迭代中的'Too Many Values to Unpack”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!