知行编程网知行编程网  2022-12-29 05:30 知行编程网 隐藏边栏  8 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python算法中散列表如何使用?的相关知识,希望可以帮到处于编程学习途中的小伙伴

如何在python算法中使用哈希表?


如果这是你第一次听说哈希表,请不要担心!因为你可能不需要自己实现哈希表,所以任何好的语言都提供哈希表实现。


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"))

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享