我想知道如何实现python dict
(字典/哈希表)。特别是,如果我写的东西像
my_dict = {"key": {"key: {"key": "value"}}}
python解释器可能做什么?我想知道它的内部工作。
它是否将每个字典视为一个对象(主要是是)?如果是这样,对于不同字典中的相同键,散列是否相同?例如,
dict1 = {"key": "value", "k": "v"}
dict2 = {"key": [1, 2.], "k": "value"}
这两个不同的词组中的键的查找有多么不同?另外,它如何决定铲斗的大小?或者类似于列表大小的处理? 希望你能得到我的问题。谢谢!
编辑 - 不,我不是问哈希表是如何工作的。我知道那部分。
答案 0 :(得分:5)
哈希表(也是哈希映射)是用于实现的数据结构 关联数组,一种可以将键映射到值的结构 哈希表使用哈希函数来计算桶或槽数组的索引,从中可以找到正确的值。
SO中的这两个问题涵盖了您感兴趣的一些内容:
How are Python's Built In Dictionaries Implemented
How can Python dict have multiple keys with same hash?
如果我继续下去,我会重复同样的事情。
答案 1 :(得分:0)
以确定的方式将项目放入内存中Python内置的另一个有用的数据类型是字典(参见 映射类型 - 字典)。有时在其他字典中找到字典 语言为“关联记忆”或“关联数组”。 最好将字典视为一组无序的键:值 对,要求密钥是唯一的(在一个内 字典)。一对大括号创建一个空字典:{}。配售 以逗号分隔的大括号内的键:值对列表添加 初始键:字典的值对;这也是方式 字典写在输出上。