快速循环来自两个大型集合的元素组合

时间:2015-10-10 14:58:19

标签: python dictionary set iteration combinations

我有两个非常大的集合词典,我想循环遍历它们对的所有组合,以计算每对的“得分”并将其存储在另一个对象中。每个字典中的键是每个字符集的唯一标识符。我目前使用的代码是:

score_matrix = {}
for id_1, set_1 in set_dict_1:
    number_elements_1 = len(set_1)
    score_matrix[id_1] = {}
    for id_2, set_2 in set_dict_2:
        score_matrix[id_1][id_2] = float(len(set_1 & set_2)) / number_elements_1

我正在对dict_1dict_2大约有25k个元素的数据进行测试。所以这个东西必须处理大约625,000,000个组合!显然我不希望这会在几秒钟内完成,但在纯粹的python中这样做需要太长时间。事实上,我不知道需要多长时间,因为我没有让它完成运行,但在我放弃之前大约需要15分钟。

我认为有一种更有效的方法可以尝试实现这一目标。有任何想法吗?也许使用numpy可能有所帮助,但我不确定如何。

0 个答案:

没有答案