這篇文章主要介紹python算法中散列表的使用方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
做網(wǎng)站、網(wǎng)站制作的開發(fā),更需要了解用戶,從用戶角度來(lái)建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。成都創(chuàng)新互聯(lián)多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營(yíng)建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇成都創(chuàng)新互聯(lián),不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來(lái)訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。我們知道 Python 中的字典是 key - value 的形式,如果我們插入 key = 'Python大星',value = 123456的值,如何讓后續(xù)更多的 key - value 能均勻的分配到數(shù)組上,而不是在數(shù)組某個(gè)索引值上集中,浪費(fèi)空間?
1、hash算法
常用的算法是 hash 算法,index = HashCode(Key) & (Length - 1)
2、數(shù)組默認(rèn)長(zhǎng)度
一般選擇 16 或者 2 的冪次方,這是因?yàn)檫@個(gè)長(zhǎng)度計(jì)算的 index 能平均分配在 Length - 1 內(nèi)
3、擴(kuò)容機(jī)制
為什么需要擴(kuò)容?設(shè)想當(dāng)我們添加的元素越來(lái)越多時(shí),會(huì)發(fā)生 hash 碰撞,就是說(shuō) hash 算法得出的 index 是同樣的。我們知道鏈表在查找的時(shí)候,從從頭節(jié)點(diǎn)開始查找,相對(duì)于數(shù)組是較慢的。這個(gè)時(shí)候我們可以在一定的閾值范圍內(nèi)采取擴(kuò)容機(jī)制,使添加的元素平攤到其他地方。
Python 語(yǔ)言:
① 創(chuàng)建通訊錄,新建一個(gè)散列表
phone-book =dicto
② 添加新的聯(lián)系人
phone_book[" python"]=123456 phone_book[" python"]=123457
③ 查找人員
print( phone_book[" python"]) print( phone_book.get(" python"))
以上是“python算法中散列表的使用方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!