本篇文章為大家展示了Python中有哪些哈希結(jié)構(gòu),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出蒙山免費(fèi)做網(wǎng)站回饋大家。
1、簡(jiǎn)單易用,與C/C++、Java、C# 等傳統(tǒng)語言相比,Python對(duì)代碼格式的要求沒有那么嚴(yán)格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺(tái)上使用;3、Python面向?qū)ο螅軌蛑С置嫦蜻^程編程,也支持面向?qū)ο缶幊蹋?、Python是一種解釋性語言,Python寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序;5、Python功能強(qiáng)大,擁有的模塊眾多,基本能夠?qū)崿F(xiàn)所有的常見功能。
1、字典
PyDictKeysObject定義了字典哈希表的一些字段。其中有兩個(gè)數(shù)組 dk_indices[] 和 dk_entries[],這兩個(gè)便是真正的存儲(chǔ)數(shù)據(jù)的數(shù)組。kv 數(shù)據(jù)保存在dk_entries[]數(shù)組中,dk_indices[]來存儲(chǔ) kv 數(shù)據(jù)在dk_enties數(shù)組中保存的索引。其中每個(gè) kv 數(shù)據(jù)以entry的數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ),如下:
typedef struct { /* Cached hash code of me_key. */ Py_hash_t me_hash; PyObject *me_key; PyObject *me_value; /* This field is only meaningful for combined tables */ } PyDictKeyEntry;
me_hash緩存存 key 的哈希值,防止哈希值的重復(fù)計(jì)算。me_key和me_value便是 key 和 value 的真正數(shù)據(jù)了。
2、集合
集合和字典一樣,底層也是哈希結(jié)構(gòu),和字典相比,可理解為只有 key,沒有 values。
相比字典,集合簡(jiǎn)單了不少。在PySetObject中直接保存了存儲(chǔ)數(shù)據(jù)的數(shù)組。
根據(jù)集合的底層數(shù)據(jù)結(jié)構(gòu)分析,它解決哈希沖突也是使用的「開發(fā)尋址法」。
集合的一些常用操作:
# 初始化 s1 = {'1', '2', '3'} # 不推薦,當(dāng)元素中有字典時(shí),會(huì)報(bào)錯(cuò) s2 = set(['1', '4', '5']) print(s1) # {'3', '1', '2'} print(s2) # {'3', '1', '2'} # 交集 print(s1&s2) # {'1'} # 并集 print(s1|s2) # {'3', '5', '4', '2', '1'} # 差集 print(s1 - s2) # {'3', '2'} # 判斷子集和超集 s2.issubset(s1) # s2 是否為s1 的子集 s1.issuperset(s2) # s1 是否為 s2 的超集 # 集合的一些內(nèi)建方法 # set.add(obj) 添加集合元素 # set.remove(obj) 刪除集合元素 # set.update(set) 合并集合 # set.pop() 隨機(jī)刪除一個(gè)元素,并返回該元素
上述內(nèi)容就是Python中有哪些哈希結(jié)構(gòu),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章標(biāo)題:Python中有哪些哈希結(jié)構(gòu)
本文網(wǎng)址:http://chinadenli.net/article0/jhhpoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、品牌網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、定制網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)