有谁知道如何实现python的内置字典类型?我的理解是它是某种哈希表,但我无法找到任何确定的答案.
码:
d = {'a': 0, 'b': 1, 'c': 2}
l = d.keys()
print l
Run Code Online (Sandbox Code Playgroud)
这打印['a','c','b'].我不确定方法键如何确定l中关键字的顺序.但是,我希望能够以"正确"的顺序检索关键字.正确的顺序当然会创建列表['a','b','c'].
我们知道,Python的一些数据结构使用哈希表来存储像set
或的项目dictionary
.所以这些对象没有顺序.但似乎对某些数字序列而言并非如此.
例如,请考虑以下示例:
>>> set([7,2,5,3,6])
set([2, 3, 5, 6, 7])
>>> set([4,5,3,0,1,2])
set([0, 1, 2, 3, 4, 5])
Run Code Online (Sandbox Code Playgroud)
但是,如果我们进行一些小改动,它就没有排序:
>>> set([8,2,5,3,6])
set([8, 2, 3, 5, 6])
Run Code Online (Sandbox Code Playgroud)
所以问题是:Python的哈希函数如何对整数序列起作用?