搜索
当前位置: sk彩票 > 对象字典 >

Python字典的内部实现:数据结构哈希表

gecimao 发表于 2019-04-19 11:56 | 查看: | 回复:

  python的字典类内部是通过Hash Table实现的,冲突解决方案为开放寻址法,需要说明的,内部的数组,会动态扩容以保证性能(看上图,通过降低装载因子,来提高性能),这也是为什么python中字典对象可以一直往里面插入元素的原因之一。具体实现详情可看cpython 的源码,对应dictobject.c文件。

  可以通过插入时间的分析,来有个感性的感受。下图中的插入时间会有毛刺现象,毛刺的产生(即插入时间的突然变大),应该就是在内部的数组在扩容导致。

  散列表内部的原理主要是hash()函数的设计和冲突的解决,来达到O(1)的插、删、查的复杂度。Python字典的实现,就是散列表,内部通过扩容,保证性能和易用。明白上述观点,在以后的编程中对何时用dict会提高性能会了然于胸,比如最简单的两数之和。

本文链接:http://moodyjews.net/duixiangzidian/129.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部