python实现哈希表存储——实现了存放字典中的英文串,采用最简单的哈希函数实现
2019-04-04 16:24
393 查看
- python中哈希表就是字典啊,还怎么实现呢?
- 存储10位同学,每位同学有姓名、籍贯和成绩
- 直接实现哇,好像也没啥可以写的
stu = {'z1': ('sx', 96), 'z2': ('sd', 97), 'z3': ('sx', 97),} stu.update({'z4': ('sd', 100),}) #直接更新,如果已经有会覆盖 print(stu) print(stu.get('z4')) print(stu.has_key('z4')) print(stu.items()) #返回字典键,值,按照列表形式存 print(stu.keys()) #返回字典键 print(stu.values()) #返回字典值 print(stu.pop('z1')) #返回弹出的键对应的值 print(stu)
{'z4': ('sd', 100), 'z1': ('sx', 96), 'z2': ('sd', 97), 'z3': ('sx', 97)} ('sd', 100) True [('z4', ('sd', 100)), ('z1', ('sx', 96)), ('z2', ('sd', 97)), ('z3', ('sx', 97))] ['z4', 'z1', 'z2', 'z3'] [('sd', 100), ('sx', 96), ('sd', 97), ('sx', 97)] ('sx', 96) {'z4': ('sd', 100), 'z2': ('sd', 97), 'z3': ('sx', 97)}
- 那还有个问题,自己怎么实现?汉字编码还是太复杂了,我们就操练下英文的哇,转化思路很简单:每个英文字母取出来,比如:‘cs’,怎么转化为数字呢?
- c对应数字99,s对应数字115,那么根据10进制计算可以知道cs=99*10+115=1105,反过来转化的时候也要这样拆开来哈。
- 代码写的不精炼,就是为了实现作业题,没别的想法,所以实现为主了:
def str2num(key): num = 0 for sy, z in enumerate(key[-1::-1]): #字符串逆序,为了便于计算数字 num += ord(z) *pow(10, sy) print(sy, z) print(num) return num ld = {'cs': 'tqinghua university', 'al': 'peking university',} keys = ld.keys() sy = {} for key in keys: sy[key] = str2num(key) print(sy)
结果输出:
{'cs': 1105, 'al': 1078}
- 接下来进入这个作业题,自己实现哈希表,直接用取余运算实现哈希函数,超级简单
print(1105 % 13)
,结果为0
- 这样就可以将cs存放再第0个位置了,打完收工!
相关文章推荐
- 利用字典实现Python中简单的ORM映射
- Python基础(7)——名片管理系统(实现了数据简单的存储、修改、删除、查看等)
- Python处理json字符串转化为字典的简单实现
- 用python的字典实现简单的通讯录
- [python] pickle 库 -- 实现数据简单存储
- 设计模式一(简单工厂,采用python实现)
- Python有序字典简单实现方法示例
- 数据结构Python实现之哈希表,字典以及集合
- 采用python实现简单QQ单用户机器人的方法
- 【龙书笔记】用Python实现一个简单数学表达式从中缀到后缀语法的翻译器(采用递归下降分析法)
- Python使用shelve模块实现简单数据存储的方法
- 顺序线性表——通过存放地址,实现顺序存储--C语言简单实现
- 采用python实现简单QQ单用户机器人的方法
- Python字典实现简单的三级菜单(实例讲解)
- Python字典数据对象拆分的简单实现方法
- Python处理json字符串转化为字典的简单实现
- 简单爬虫python实现01——获取网页源码与存储
- Python使用shelve模块实现简单数据存储的方法
- Python:简单的摄像头程序实现
- 不仅拥有XmlDocument一样简单的XML操作方法,并且实现数据文件安全存储功能——XmlEDocument