python 入門之 – hash(十七)
阿新 • • 發佈:2018-12-30
Hash
,一般翻譯成“雜湊”
,也有直接音譯為 “雜湊”
的,就是把任意字串的輸入,通過雜湊演算法,變成固定長度的輸出,該輸出也叫雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來唯一的確定輸入值。簡單的說就是一種將任意長度的訊息壓縮到某一固定長度的訊息摘要的函式。
特徵:
Hash
值的計算過程是依據這個值的一些特徵計算的,這就要求被 Hash
的值必須固定,因此被 Hash
的值必須是不可變的
所以一般能被 Hash
的有 數字
字串
元祖
,例如說 列表
這種可變的資料型別肯定是不能被 Hash
hash
本身就是一個函式,如:hash()
我用 字串
來做一個測試:
可以看到,同一個字串一旦被 hash
了,之後再次 hash
是不會被改變的,但是一旦程式退出,再次 hash
這個字串,會生成另外一個 hash
值。
我再用 數字
來做一個測試:
可以看到 數字
型別被 hash
之後基本上和原數字一摸一樣
我在來試試 元祖
:
元祖
被 hash
基本上和 字串
一摸一樣
上面三種是我已經學過的不能更改的資料型別,我現在來試一下如 陣列
這種可以被更改的資料型別看看被 hash
了之後是怎麼樣的:
如上,根據報錯資訊得出,能夠被更改的資料型別 list
hash
的.