第一个:神奇的字典键
some_dict = {}
some_dict[5.5] = "Ruby"
some_dict[5.0] = "JavaScript"
some_dict[5] = "Python"
Output:
>>> some_dict[5.5]
"Ruby"
>>> some_dict[5.0]
"Python"
>>> some_dict[5]
"Python"
"Python" 消除了 "JavaScript" 的存在?
说明:
Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同
具有相同值的不可变对象在Python中始终具有相同的哈希值
注意: 具有不同值的对象也可能具有相同的哈希值(哈希冲突)
>>> 5 == 5.0
True
>>> hash(5) == hash(5.0)
True
当执行 some_dict[5] = "Python"语句时, 因为Python将5和5.0识别为some_dict的同一个键, 所以已有值 "JavaScript" 就被 "Python" 覆盖了
这个 StackOverflow的 回答(https://stackoverflow.com/a/32211042/4354153