我有一个带有50,000,000个字符串(字符串)的字典映射到该字符的计数(这是数十亿的一个子集)。查找具有巨大字典的巨大集合的交集
我还有一系列对象,其中包含一个包含几千个字符串的类集合成员,这些字符串可能或可能不在dict键中。
我需要最快的方法来找到每个这些集合的交集。
现在,我这样做下面这段代码片段:
for block in self.blocks:
#a block is a python object containing the set in the thousands range
#block.get_kmers() returns the set
count = sum([kmerCounts[x] for x in block.get_kmers().intersection(kmerCounts)])
#kmerCounts is the dict mapping millions of strings to ints
从我的测试中,到目前为止,这需要每次迭代约15秒。因为我有大约两万块这样的块,所以我只看了半个星期就做了这个。这是对于50,000,000项目,而不是我需要处理的数十亿...
(是的,我可能应该用另一种语言来做,但我也需要它做得很快, python语言)。
从几天到不到一分钟。谢谢! – 2014-11-05 22:08:49