我心中的一团火是不会熄灭的。
声明
仅作为个人学习使用,仅供参考
Question
代码功能可视作 对照生词表 统计生词个数
def text(new_words,ans):
result = 0
for i in new_words:
if i in ans:
result += ans[i]
print(result)
new_words = ['a','b']
ans= {
'a':1,
'b':2,
'a':3
}
text(new_words,ans)
输出:
5
这时有好奇的小朋友就会问了
在 字典ans 里 所有的值加起来不是 6 吗
为什么最后输出是 5?
Answer
在Python中,字典的键(key)必须是唯一的。当你尝试在字典ans
中定义两个相同的键'a'
时,后一个值会覆盖前一个值
在Python看来 我们的ans实际上就是 { 'a':3 , 'b':2 } 根本没有'a':1
我们手动print(ans) 发现 ans的顺序还是a在前,b在后 ,所以称为 覆盖
即 { 'a':3 , 'b':2 }
那么 我们字典的ans定义就是错误的 , 不应该出现相同的键名
当然了,本文仅作为错误演示,预防以上错误发生。