简单的问题。
python的默认dict中使用了什么散列算法?
>>> g = { 'a' : 1, 'b' : 2, 'c' : 3 }
>>> g
{'a': 1, 'c': 3, 'b': 2}
>>> g.keys()
['a', 'c', 'b']
>>>
我期待
线性探头(猜不是)['a','b','c']
?g.keys()
双哈希?
不能保证 Python 会使用任何特定的方法——不同的实现可以使用任何他们想要的方法。dict
s 是无序的,因此它的实现方式并不重要(前提是它履行了某些义务)。
至于CPython是如何做到的......