字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的 每个单元叫做 bucket。每个 bucket 有两部分:一个是键对象的引用,一个是值对象的引用。
通过偏移量来读取bucket
将一个键值对放进字典的底层过程
我们要把键值对放到字典对象 中,首先第一步需要计算 键的散列值。Python 中可以通过hash()来计算
如果数组长度为 8,我们可以拿计算出的散列值的最右边 3 位数字作为偏移量,即 “101”,十进制是数字 5。我们查看偏移量 5,对应的 bucket 是否为空。如果为空,则 将键值对放进去。如果不为空,则依次取右边 3位作为偏移量,即“100”。
流程图如下
字典的核心底层原理
最新推荐文章于 2024-04-21 17:49:09 发布