小白询问,我的程序错误了,请问是为啥?

2017-10-31 22:54:21 +08:00
 freejewu

各位大佬询问一下 scores = {} scores[8.45] = 'Joseph' scores[9.12] = 'Zack' scores[7.21] = 'Juan'

for value in scores.values(): print(scores[value])

显示 key error ‘ Joseph ’ 这组代码我如果用 for key in scores.keys(): print(scores[key]) 是行得通的。为什么我把方式换成了.values(),就会出错了呢?

1622 次点击
所在节点    Python
3 条回复
billlee
2017-10-31 23:23:35 +08:00
因为字典只能用 key 查 value, 不能用 value 查 key.
ads1029
2017-11-01 00:18:14 +08:00
你想用 scores[value]来显示什么呢?这样逻辑是不通的
wangdaqiao
2017-11-01 12:04:14 +08:00
list(scores.values()), 得到的是 ['Joseph','Zack', 'Juan'] , 而 scores 并没有这几个 key,所以报错。
其实 scores[value] 这种表达逻辑就是错的,应该用 scores[key]来表示。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402415

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX