Python字典的底层原理和优缺点

字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做 bucket。每个 bucket 有两部分:一个是键对象的引用,一个是值对象的引用。所有 bucket 结构和大小一致,我们可以通过偏移量来读取指定 bucket。下面通过存储与获取数据的过程介绍字典的底层原理。

 

小结:

1. 字典在内存中开销巨大,典型的空间换时间。

2. 键查询速度很快。

3. 往字典里面添加新建可能导致扩容,导致散列表中键的次序变化。因此,不要在遍历字典的同时进行字典的修改。

4.键必须可散列,如数字、元组、字符串;自定义对象需要满足支持hash。

 

 

posted @ 2019-12-26 15:11  K_Code  阅读(2644)  评论(0编辑  收藏  举报