我有两个非常大的集合词典,我想循环遍历它们对的所有组合,以计算每对的“得分”并将其存储在另一个对象中。每个字典中的键是每个字符集的唯一标识符。我目前使用的代码是:
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_1
和dict_2
大约有25k个元素的数据进行测试。所以这个东西必须处理大约625,000,000个组合!显然我不希望这会在几秒钟内完成,但在纯粹的python中这样做需要太长时间。事实上,我不知道需要多长时间,因为我没有让它完成运行,但在我放弃之前大约需要15分钟。
我认为有一种更有效的方法可以尝试实现这一目标。有任何想法吗?也许使用numpy可能有所帮助,但我不确定如何。