python - 如何在Python中定义哈希函数

标签 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] = ''

这里如何计算哈希函数?由于您不断向字典中添加元素,因此哈希函数是否会根据元素总数不断变化?或者哈希函数在插入所有元素之前确定一次?

由于我的程序不知道字典中可能出现的所有值,我们如何决定这里的哈希函数?我的值列表可以是任何东西,而不仅仅是数字。

最佳答案

Python 中字典的键可以是不可变的数据类型,只要它支持哈希。举个例子,

X = 1
print(X.__hash__())

这显示了该对象值的唯一哈希值。字典中的每个键必须是唯一的,这就是为什么不能有重复的键。

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

无论您要散列的数据类型如何,Python 中的所有散列值都是完整的。

关于python - 如何在Python中定义哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34113587/

相关文章:

java - HashMap 中键的突变会导致错误的结果

javascript - 使用 HashMap 分配声音

javascript - Python API 不返回 JSON 对象

ruby - 删除散列中不在数组中的键

c++ - 用户定义类的哈希函数。如何交 friend ? :)

java - 在 HashMap 中存储字符和二进制数

Python 脚本执行另一个脚本并在第二个脚本完成其工作后恢复

python - 将数组的 Python 字典转换为数据框

python - 使用 flask_pymongo 时身份验证失败

multithreading - Perl MCE 将哈希数据返回给主进程