python - Python 错误:尝试从字典中打印响应时解包的值太多
问题描述
我正在尝试使用 for 循环打印出每个人及其响应,但不断收到错误“太多值无法解包”,我不知道为什么。我正在尝试完成 Python 教程中的练习。这是我的代码:
question = {'Kim':'Yes',
'Sarah':'No',
'Jake':'Maybe'}
for friends, answer in question:
print("\nFriend:%s" % friends)
print("Answer:%s" % answer)
这是我收到的错误:
ValueError Traceback (most recent call last)
<ipython-input-15-38fd8bb38999> in <module>
8 'Sarah':'No',
9 'Jake':'Maybe'}
---> 10 for friends, answer in question:
11 print("\nFriend:%s" % friends)
12 print("Answer:%s" % answer)
ValueError: too many values to unpack (expected 2)
有人可以向我解释如何在使用 for 循环时准确检索列表中的响应。
解决方案
很简单——如果你调试你会看到“x in question”只返回键。添加 .items() 以获取元组(或 keys() 以显式获取键,或 values() 用于随机排序值)。
for friends, answer in question.items():
print("Answer:%s" % answer)
退货
Answer:Yes
Answer:No
Answer:Maybe
如果你想调试你应该这样做并且你会看到它:
for x in question:
print(x, type(x))
出去:
Kim <class 'str'>
Sarah <class 'str'>
Jake <class 'str'>
推荐阅读
- java - 在画布内画线
- javascript - 点击功能淡出和淡出。此功能在另一个 img 之上显示 img,但从不匹配屏幕大小
- ios - 滚动视图栏滚动,而内容视图不滚动
- java - 从 mainActivity 调用方法时出现 java.io.IOException(在类中调用时有效)(android studio)
- javascript - Javascript - 如何检查正则表达式以确保字符串包含至少一个字母/数字序列?
- php - 如何将 jQuery 过滤器添加到 html 表
- r - 如何解释列联表?
- topic-modeling - 主题建模:LDA 和 BTM
- javascript - tomcat App与数据库无连接
- php - How to add the product again to the cart or add to cart button not working?