雜湊函數hash()是python內建的嗎?以下為大家介紹一下雜湊函數的相關知識:
hash(object)
如果object 屬於可雜湊對象,hash( ) 函數將傳回其雜湊值;如果object 不屬於可雜湊對象,hash() 函數則會拋出異常。哈希值是一個整數。
相關推薦:《python影片教學》
hash('orca_j35') #> 3721949548176702466 hash([1,2]) #> TypeError: unhashable type: 'list
在尋找字典時,會使用雜湊值來快速比較字典的按鍵。具有相同哈希值的對象,被字典視為同一個鍵。
x = (1,2)y = (1,2) # x和y是具备不同id的对象 x is y #> False z = {x:"orca"} # 只要哈希值相同,便可互换使用 z[y] #> 'orca'
相等(==)的數值擁有相同的雜湊值,即使兩個相等的數值屬於不同的類型,它們的雜湊值也相同,例如1 和1.0:
1 == 1.0 #> True hash(1),hash(1.0) #> (1, 1)
tips: 兩個相等(==)的物件必定擁有相同的雜湊值,但回傳過並不一定成立。
注意:
對於擁有自訂__hash__() 方法的對象,hash() 函數會根據主機(host machine)的位寬來截斷__hash__ () 的回傳值。
以上是hash()是python內建的嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!