python数组和链表的区别,python链表的实现
1、优点,方便删除记录,直接处理数组对应下标的子数组。平均搜索速度快。如果有冲突,只需要查询子数组。
2、缺点,使用指针导致查询速度较慢,内存占用可能较高,不适合序列化。
而开放式寻址法的优缺点与链表法相反。因为大蟒的一切都是基于词典的,都需要序列化,所以选择了开放式寻址法。
实例
#键函数
#!/usr/bin/envpython
#编码=utf-8
classDict:
def__init__(self,num):
自我. solts__=[]
自我编号=数字
for_inrange(编号):
自我__solts__ .追加([])
defhash_fun(self,key,num):
hashval=0
x=键
ifx0:
打印"钥匙慢"
返回
whilex!=0:
哈希瓦尔=(哈希瓦尔3) x
x/=10
returnhashval%num
解冻(自身,键,值):
i=self.hash_fun(key,self.num)%self.num
forp,(k,v)inenumerate(self .__solts__[i]):
ifk==key:
破裂
else:
自我__solts__[i].追加((关键字,值))
返回
自我. solts__[i][p]=(key,value)
defget(self,key):
i=self.hash_fun(key,self.num)%self.num
叉子,葡萄酒:
ifk==key:
returnv
raiseKeyError(键)
#键函数
defkeys(self):
ret=[]
forsoltinself .__solts__:
叉子,_ insolt:
ret.append(k)
返回浸水使柔软
def__getitem__(self,key):
returnself.get(key)
def__setitem__(self,key,data):
自我上传(键,数据)
h=字典(13)
H[54]=猫
H[26]=狗
H[93]=狮子
H[17]=老虎
H[77]=鸟
H[31]=牛
H[44]=山羊
H[55]=猪
H[20]=鸡
printH.get(54)
H.put(13,”鸭子")
普林斯__solts__
普林斯。keys()以上就是大蟒链表法的优缺点,希望对大家有所帮助。更多大蟒学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1、戴尔自交第三代电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。