2015-12-06 65 views
2

定義的哈希函數我是看在Hash Table視頻,並明確了教授說: enter image description here你如何在Python

現在假設我使用Python添加萬元值到我的哈希表。

代碼:

dictionary = {} 
for i in xrange(1000000): 
    dictionary[i] = '' 

dictionary = {} 
for i in ['A', 'B', 1, 2, 3, 4, 1, 'Hi']: 
    dictionary[i] = '' 

如何計算一個hash function在這裏?因爲你會不斷地添加元素融入字典,莫非hash function連續改變基於元素的總數是多少?或者hash function在插入所有元素之前決定一次?

由於我的程序不知道什麼都值可能出現在字典中,我們怎麼在這裏決定的哈希函數?我的價值清單可以是任何東西,不只是數字。

+1

哪些__hash__功能你指的是,那你將使用爲重點,以您的表或哈希表類本身的類的? –

+0

可以爲我的列表中的每個值奇蹟般地生成一個「唯一鍵」的那個。 – python

+0

哈希函數不這樣做。 – user2357112

回答

2

密鑰用於在Python詞典可以是不可變的數據類型,只要它支持散列。例如,

X = 1 
print(X.__hash__()) 

這顯示了此對象的值的唯一散列值。詞典中的每個鍵必須是唯一的,這就是爲什麼你不能有重複的鍵。

Y = "1" 
print(Y.__hash__()) 

Python中的所有散列值都是整數,無論​​您使用哪種數據類型進行散列。

+1

縮進你的行4個額外的空間用於代碼格式化。 – user2357112

+0

我打它在我的iPad,登錄到我的MacBook〜感謝@ user2357112 –

+0

你能說兩種不同的值不會產生相同的哈希? – python