如果这是你第一次听说哈希表,请不要担心!因为你可能不需要自己实现哈希表,所以任何好的语言都提供哈希表实现。
Python提供的哈希表是以字典的形式实现的,可以使用函数dict来创建哈希表。
那么,大家就可以跟着小编一起来学习如何使用这个哈希表的内容。
~
我们知道
Python 中的字典是 key - value 的形式,如果我们插入 key = 'Python大星',value = 123456的值,如何让后续更多的 key - value 能均匀的分配到数组上,而不是在数组某个索引值上集中,浪费空间?
1、hash算法
常用的算法是
hash 算法,index = HashCode(Key) & (Length - 1)
2、数组默认长度
一般选择
16 或者 2 的幂次方,这是因为这个长度计算的 index 能平均分配在 Length - 1 内
3、扩容机制
为什么需要扩展?想象一下,当我们添加越来越多的元素时,会发生什么
hash 碰撞,就是说 hash 算法得出的 index 是同样的。我们知道链表在查找的时候,从从头节点开始查找,相对于数组是较慢的。这个时候我们可以在一定的阈值范围内采取扩容机制,使添加的元素平摊到其他地方。
Python 语言:
① 创建通讯录,新建一个散列表
phone-book =dicto
② 添加新的联系人
phone_book[" python"]=123456
phone_book[" python"]=123457
③ 查找人员
print( phone_book[" python"])
print( phone_book.get(" python"))
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何将 postgresql 连接到 python01/05
- ♥ 如何在python中编写多行代码08/31
- ♥ python为什么要定义类12/11
- ♥ python如何识别二维码?10/25
- ♥ python Fixture类级别介绍12/19
- ♥ 如何在python中保存程序09/07
内容反馈