如何修复ValueError:太多值无法解压

时间:2019-04-04 13:28:37

标签: python

如何解决此问题,代码给了我 ValueError:太多值无法解包(预期2)

from collections import OrderedDict

languages = OrderedDict()

languages['jen'] = 'python'
languages['sarah'] = 'c'
languages['edward'] = 'ruby'
languages['phil'] = 'python'

for name, language in languages:
    print(name.title() + "'s favorite language is " + 
    language.title() + ".")

1 个答案:

答案 0 :(得分:3)

odict_iterator(在OrderedDict循环中使用for时得到的结果)仅产生其键,而不产生键/值对。使用items方法获取这些内容:

for name, language in languages.items():
    ...

(对于任何类型的dict都是正确的; dict提供了dictkey_iterator,但我想OrderedDict拥有自己的原始密钥广告订单。)

(从Python 3.7开始,dictkey_iterator也会 按插入顺序产生键,但是引入OrderedDict时,这是定义上的区别。)