list python 访问 键值对_哈希结构的python实现

本文介绍了如何用Python实现哈希表,重点在于哈希函数和处理冲突的方法。通过创建一个二维列表模拟HashMap,利用取模运算作为哈希函数,并用list存储键值对对象。键值对对象包含了获取和设置键值的方法。文章详细讲解了put、get和delete操作的实现逻辑,并指出删除操作实际上是将键设为-1以便复用空间。
摘要由CSDN通过智能技术生成

哈希函数是哈希结构的重要组成部分,一个好的哈希函数可以提高查询的效率。在python中有两个数据结构是哈希结构实现的,分别是set集合和dict字典。那么这篇文章主要想带大家实现一个简单的字典的结构,也就是hashmap,这个数据结构是由一个个的键值对(k,v)组成。

假定k,v都是int的整数类型,哈希函数我们使用最经典的取模运算

对于哈希函数会存在key取模后值相同的这种情况,处理办法就是我们采用python自带的数据结构list来线性存储值相同的value

注:由于我们要实现字典的功能,所以存储key,value的数据结构需要我们自己来实现

实现hashmap的组件

对于hashmap这个数据结构,常用方法就是增删改查,具体的实现方法就是对应get(),put(),delete()这个三个函数,我们假定哈希函数为key%1000,存储kv键值对的数据结构如下:

[ [] for i in range(1000) ]

初始化一个包含有1000个空list的二维list,其中空的list中存放的就是含有键值对的对象

键值对的对象代码如图

73ceaccf1951980c4319a692a6b5dfec.png

这个对象需要具备获取key的值(getKey()这个方法),更新key的值(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值