為什么字典的查詢速度比列表快


因為字典采用的是哈希索引, 所以查詢速度要比列表快, 那么問題來了? 什么數據類型可哈希,什么數據類型不可哈希呢?

這里有一個口訣: 可變(數據類型)不可哈希, 不可變(數據類型)可哈希

可變的數據類型: 列表、字典、集合

不可變數據類型:數值型、字符串、元組、布爾

那么七大基本數據類型什么是序列什么是散列呢?

序列:字符串、列表、字典、元組

散列:數值型、布爾、集合

回到問題的本身,為什么字典的查詢速度比列表快?

先了解一下哈希算法(僅供參考)

哈希算法將任意長度的二進制值映射為較短的固定長度的二進制值,這個小的二進制值稱為哈希值。

哈希值是一段數據唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,

隨后的哈希都將產生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的,所以數

據的哈希值可以檢驗數據的完整性。一般用於快速查找和加密算法。

字典在存儲時將字典的鍵利用哈希算法申城哈希值, 並將所有鍵生成的哈希值組成一張哈希表, 在對字典進行

查詢時, 會先對字典的鍵利用哈希算法生成哈希值, 然后再到哈希表中查詢, 而不像列表一樣遍歷索引位置元

素進行查詢, 所以比列表查詢速度快.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM