案例场景:
想象一个键值对象(字典),它包含以下数据:
{
'www.example.com/':2,
'www.example.com/happy/':4
}
我从包含以下数据的来源收到一个值:
{
'www.example.com//':4
}
很明显,www.example.com //与www.example.com/非常相似。我不希望在我的字典中创建一个新条目,而是希望代码在文本相似性方面看到我字典中最接近的密钥,然后总结数字。因此,字典的最终状态如下所示:
{
'www.example.com/':6,
'www.example.com/happy/':4
}
求和部分很容易,并且容易反弹,但挑战性的部分是字典增长时使用的最佳算法?
即。我是否每次都要遍历字典并检查密钥(如下所示:
for key in dictionary:
if tolerance > diff(key,collected_data):
dictionary[key] += collected_data[value]
break
)
但上面的例子并没有停止,直到找到最佳值,这不是理想的。