我正在计算一些字符串的编辑距离。只有距离为 1 的那个我想进一步分析。最重要的是,我感兴趣的是角色的位置。例如;
('rodange', 'redange', 1) # position 2
我可以想出几种方法,但它们似乎不是很方便(比如遍历所有字符并一个一个地比较它们)。已经有东西了吗?
请您参考如下方法:
我认为没有比您已经想到的更好的解决方案了。添加代码以返回您正在使用的 levenshtein 算法的第一个更改的索引。那应该是在正确位置的单行,以及修改后的 return 语句。
或者像你说的那样遍历它,也不太难:
idx = next(i for (i, (a, b)) in enumerate(zip(w1, w2)) if a != b)
如果你喜欢它更短:
from operator import eq
idx = map(eq, w1, w2).index(False)
