如何修复ValueError:要取消处理的值太多

2024-03-28 19:58:11 发布

您现在位置: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() + ".")

Tags: 代码namefromimporttitlelanguagecollectionsordereddict
1条回答
网友
1楼 · 发布于 2024-03-28 19:58:11

odict_iterator(在这样的for循环中使用OrderedDict时得到的结果)只产生它的键,而不是键/值对。使用items方法获得:

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

(对于任何类型的dict都是这样;一个dict提供了一个dictkey_iterator,但是OrderedDict,我想,它有自己的,以原始插入顺序提供它的键。)

(在python3.7中,dictkey_iterator也将按插入顺序生成键,但是当引入OrderedDict时,这就是定义性的区别。)

相关问题 更多 >