【发布时间】:2011-05-26 17:29:04
【问题描述】:
是否有不记得键值的散列实现?我必须做一个巨大的哈希,但我不在乎键是什么。
编辑:
Ruby 的哈希实现存储键的值。我想要不记得键值的哈希。它只是使用哈希函数来存储您的值而忘记了密钥。这样做的原因是我需要为大约 5 gb 的数据做一个哈希,我不在乎创建它之后的键值是什么。我只想能够根据其他键查找值。
编辑编辑:
语言有点混乱。通过键的值,我的意思是:
hsh['value'] = 数据
我不在乎散列函数在散列中存储数据后的“值”是什么。
编辑^3:
好的,这就是我正在做的事情:我正在为一组多个基因生成每个 35 个字母(核苷酸)的 kmer。每个基因都有一个 ID。哈希看起来像这样:
kmers = { 'A...G' => [1, 5, 3], 'G...T' => [4, 9, 9, 3] }
所以哈希键是kmer,值是一个数组,其中包含具有该kmer的基因/字符串的ID。
我正在另一个数据集中查询 kmers 的哈希值,以快速找到匹配的基因。我不在乎哈希键是什么,我只需要从 kmer 中获取数字数组。
>> kmers['A...G']
=> [1, 5, 3]
>> kmers.keys.first
=> "Sorry Dave, I can't do that"
【问题讨论】:
-
为什么不用使用数组来代替?
-
你在找一套吗?也许是一个数组?
-
您是否只想检查某个元素是否在其中/全部迭代,还是仍需要通过其唯一(未知)键访问特定元素?
-
您是否正在寻找一个允许您通过密钥查找但不会存储密钥的容器?我不认为,这将与哈希一起工作,因为即使它根据键的哈希值存储值,由于通常不可避免的哈希值冲突,仅哈希值不足以进行查找。
-
这仍然令人困惑。你能否提供一个真实的例子来说明你需要存储什么以及你需要对该集合进行哪些操作?
标签: ruby bioinformatics