1

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

my_dict = {"key": {"key: {"key": "value"}}}

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

它是否将每个字典视为一个对象(大部分是)?如果是这样,不同字典中相同键的散列是否相同?例如

dict1 = {"key": "value", "k": "v"}
dict2 = {"key": [1, 2.], "k": "value"}

在这两个不同的字典中查找键会有多大不同?另外,它如何决定桶的大小?还是类似于列表大小的处理?希望你能得到我的问题。谢谢!

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

4

2 回答 2

5

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

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

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

Python的内置字典是如何实现的

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

如果我走得更远,我会重复同样的事情。

于 2013-11-05T17:56:27.373 回答
0

规范读取

Python 中内置的另一种有用的数据类型是字典(请参阅映射类型 - dict)。字典有时在其他语言中被称为“关联记忆”或“关联数组”。最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中)。一对大括号创建一个空字典:{}。在大括号内放置一个逗号分隔的键:值对列表,将初始键:值对添加到字典中;这也是在输出上编写字典的方式。

并通过散列函数以确定的方式将项目放置在内存中

于 2013-11-05T18:01:49.833 回答