你可以使用这个模块
python-Levenshtein - 它包含一个
editops
函数,该函数返回一个操作列表,用于将一个字符串转换为另一个字符串。
例如:
Levenshtein.editops("FBBDE", "BCDASD")
[('delete', 0, 0), ('replace', 2, 1), ('insert', 4, 3), ('insert', 4, 4), ('replace', 4, 5)]
从文档中得知:
查找将一个字符串转换为另一个字符串的编辑操作序列。
editops(source_string, destination_string)
editops(edit_operations, source_length, destination_length)
结果是一个三元组(operation, spos, dpos)列表,其中
operation可以是 'equal', 'replace', 'insert' 或者 'delete'; spos
和 dpos 是第一个(源)字符串和第二个(目标)字符串中字符的位置。这些都是对单个字符的操作。实际上,返回的列表不包含 'equal',但是所有相关函数都接受带有和不带有 'equal' 的列表。