Python:如何找到使levenshtein距离的角色的位置

时间:2013-08-01 12:08:03

标签: python string-comparison levenshtein-distance

我计算一些字符串的levenshtein距离。只有距离为1的那个我想进一步分析。最重要的是,我感兴趣的是构成距离的角色的位置。所以例如;

('rodange', 'redange', 1)  # position 2

我可以想到几种方法来达到目的但它们看起来不是很方便(比如循环遍历所有字符并逐一比较它们)。那里有什么东西?

1 个答案:

答案 0 :(得分:1)

我认为没有比你已经想到的更好的解决方案。添加返回您正在使用的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)