国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現(xiàn)在的位置是:首頁(yè) » 原創(chuàng)課程 » Python

課程內(nèi)容

Python入門課程N(yùn)O50課 字典類型的高級(jí)理解

極客小將2020-08-19-
1、鍵的輸出順序Python中的字典類型基于哈希表,在Python3.6版本前,字典中的鍵的輸出順序取決于鍵在哈希表中的存儲(chǔ)順序,從Python3.6版本以后,字典中的鍵的輸出順序按其插入的先后順序進(jìn)行輸出。Python3.6后版本的程序輸出為:    name     price

1、鍵的輸出順序

Python中的字典類型基于哈希表,在Python3.6版本前,字典中的鍵的輸出順序取決于鍵在哈希表中的存儲(chǔ)順序,從Python3.6版本以后,字典中的鍵的輸出順序按其插入的先后順序進(jìn)行輸出。

Python3.6后版本的程序輸出為:    name     price

Python3.6前版本的輸出可能為:     price    name

2、鍵的數(shù)據(jù)類型

字典中的鍵的數(shù)據(jù)類型必須是靜態(tài)的數(shù)據(jù)類型,迄今為止學(xué)過(guò)的靜態(tài)的數(shù)據(jù)類型有:簡(jiǎn)單數(shù)據(jù)類型,字符串,元組。列表和字典類型是不可哈希的類型。

3、字典的快速查找

字符串,列表,元組是一種線性的序列結(jié)構(gòu),在不對(duì)序列結(jié)構(gòu)進(jìn)行任何處理時(shí),對(duì)元素進(jìn)行查找需要從頭到尾地進(jìn)行遍歷。假設(shè)列表中包含1百萬(wàn)個(gè)元素,那么按這種方式來(lái)查找,最慢需要比較1百萬(wàn)次,才能判定元素是否存在于列表中。由此可分析,當(dāng)數(shù)據(jù)量很大時(shí),使用列表等序列結(jié)構(gòu)來(lái)進(jìn)行元素查找,效率十分低下。字典類型采用哈希表進(jìn)行實(shí)現(xiàn),在理想情況下,只需計(jì)算一次鍵名的哈希值,就可以快速地查找元素是否存在于數(shù)據(jù)集合中,即使數(shù)據(jù)集合中存在百萬(wàn)級(jí),甚至千萬(wàn)級(jí),億萬(wàn)級(jí)的數(shù)據(jù)量。那么我們接下來(lái)介紹哈希表。

4、哈希表結(jié)構(gòu)

哈希表中的編號(hào)即為鍵名的哈希值,數(shù)據(jù)表中存儲(chǔ)了哈希值,以及鍵名,鍵值。Python字典的底層實(shí)現(xiàn)中,并非直接存儲(chǔ)鍵名,鍵值,存儲(chǔ)的是它們的引用。哈希(hash)函數(shù)又稱為散列函數(shù),計(jì)算鍵名的哈希值,就是將字典中的鍵名轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字編號(hào)。現(xiàn)在來(lái)寫個(gè)簡(jiǎn)單的代碼,來(lái)比較列表和字典的查找性能。

從程序的輸出可知,字典的查找速度幾乎是列表的1000倍,數(shù)據(jù)量越大,查找性能越明顯。

預(yù)約試聽課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 九寨沟县| 泰顺县| 香河县| 水富县| 高陵县| 永州市| 咸阳市| 万盛区| 钦州市| 洪洞县| 庆安县| 玛多县| 绵阳市| 剑川县| 伊金霍洛旗| 客服| 大渡口区| 周口市| 铜梁县| 龙陵县| 娄烦县| 满洲里市| 射洪县| 治县。| 永春县| 广水市| 鄂托克前旗| 垫江县| 奉新县| 甘肃省| 涪陵区| 盘山县| 常德市| 岐山县| 永丰县| 上林县| 朝阳区| 稻城县| 始兴县| 寻乌县| 台南市|