如何在Python中定义哈希函数

时间:2015-12-06 03:11:07

标签: python hash hashmap hashtable hashcode

我正在Hash Table观看视频,教授清楚地说: enter image description here

现在假设我正在使用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 个答案:

答案 0 :(得分:2)

Python中的词典键可以是不可变的数据类型,只要它支持散列即可。例如,

X = 1
print(X.__hash__())

这显示了此对象的值的唯一哈希值。字典中的每个键必须是唯一的,这就是你不能拥有重复键的原因。

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

Python中的所有哈希值都是不可或缺的,无论您正在散列的数据类型如何。