列表不可清洗。但是,我implementing LSH并且我正在寻找一个哈希函数,它将对应一个正整数列表(在[1,29000]中)到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
第一列应作为哈希函数的输入,并返回一个桶的编号。
令我困惑的是,我们不寻求一个函数来散列数字,而是一个列,即一个正整数列表。
有什么想法吗?
如果重要,我正在使用python
答案 0 :(得分:4)
您可以在以下之前将其转换为可散列类型:
In [4]: hash(l)
TypeError: unhashable type: 'list'
hash(tuple(l)) % k # 29000
Out[5]: 70846