如何哈希列表?

gsa*_*ras 1 python hash list nearest-neighbor locality-sensitive-hash

列表不可散列。但是,我正在实现LSH,我正在寻找一个哈希函数,该函数将一个正整数列表(在[1,29.000]中)与k个存储桶相对应。列表数为D,其中D> k(我认为),D = 40.000,其中k未知(建议接受)。


示例(D = 4,k = 2):

118 | 27 | 1002 | 225
128 | 85 | 2000 | 8700
512 | 88 | 2500 | 10000
600 | 97 | 6500 | 24000
800 | 99 | 7024 | 25874
Run Code Online (Sandbox Code Playgroud)

第一列应作为哈希函数的输入,并返回存储桶的编号。


令我感到困惑的是,我们不是在寻找一个函数来散列一个数字,而是一个列,即一个正整数列表。

有什么想法吗?

我正在使用如果这很重要

B. *_* M. 5

您可以先将其转换为可哈希类型:

In [4]: hash(l)
TypeError: unhashable type: 'list'

hash(tuple(l)) % k  # 29000
Out[5]: 70846
Run Code Online (Sandbox Code Playgroud)