python字典的散列表

散列表其实是一个稀疏数组(总是有空白元素的数组),通常会把散列表里的单元叫做表元,表元的大小是一致的,可以通过偏移量的方式来访问表元。dict中一组键值对占用一个表元。python会保证有大约三分之一的空间是空白的,超过阈值会把原有散列表复制到更大的空间。

mydict[key]的查找过程:首先会调用hash(key)计算散列值,取散列值的低几位作为偏移量进行表元查找,如果找到的表元为空,则KeyError;如果不为空,则会找到表元里有一对found_key:found_value,如果found_key=key,则返回found_value,如果不等,说明发生了冲突,这时会在散列值中再取几位,然后用特殊方法处理一下,把得到的数字当作索引来寻找表元,重复上面操作。添加和更新操作类似。


散列表查找.PNG
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 11,044评论 0 9
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 10,050评论 0 5
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,768评论 0 38
  • 阅读者:谈文俊 阅读时间:2016年11月16日 阅读书籍《绚烂的世界帝国》 阅读字数:22.3万字 今日阅读《绚...
    快速阅读谈文俊阅读 3,576评论 0 0
  • 第一次了解简书这个软件看到可以写作就特别开心立刻就下载了,不会写文章只想写写自己工作学习的心得。 1 抱怨的人。抱...
    大喵仙阅读 2,118评论 0 0

友情链接更多精彩内容