Python字典(内置哈希表)如何实现?

sha*_*k3r 1 python dictionary hashtable hashmap

我想知道python dict(字典/哈希表)是如何实现的。特别是如果我写类似

my_dict = {"key": {"key: {"key": "value"}}}
Run Code Online (Sandbox Code Playgroud)

python解释器可能做什么?我想知道它的内部运作。

是否将每个字典都视为一个对象(通常是)?如果是这样,那么跨不同词典的相同键的哈希值是否相同?例如

dict1 = {"key": "value", "k": "v"}
dict2 = {"key": [1, 2.], "k": "value"}
Run Code Online (Sandbox Code Playgroud)

在这两个不同的字典中对键的查找有何不同?另外,它如何确定铲斗的尺寸?还是类似于列表大小的处理?希望你能回答我的问题。谢谢!

编辑 -不,我不是问哈希表如何工作。我知道那部分。

Jac*_*des 5

Python字典基本上是哈希表的实现。现在,问题是什么是哈希表?从维基百科,简短而甜蜜的答案:

哈希表(也称为哈希图)是一种用于实现关联数组的数据结构,该结构可以将键映射到值。可以找到价值。

SO中的以下两个问题涵盖了您感兴趣的一些内容:

如何实现Python的内置词典

Python dict如何将多个键具有相同的哈希值?

如果再进一步,我将重复同样的事情。