如何计算2个字符串之间的差异?

时间:2019-04-23 12:30:18

标签: python list difference

我正在尝试计算两个琴弦之间的距离。两个字符串之间的距离/差异是指将一个字符串更改为另一个字符串所需的最小字符插入,删除和替换次数。

我尝试过的方法是:将两个字符串转换为列表,比较列表,检查差异,然后添加差异

first_string = "kitten"
second_string = "sitting"

list_1 = list(first_string)
list_2 = list(second_string)

print("list_1 = ", list_1)
print("list_2 = ", list_2)
print("   ")


lengths =  len(list_2) - len(list_1)
new_list = set(list_1) - set(list_2)
print(lengths)
print(new_list)

difference = lengths + int(new_list)
print(difference)

我得到的输出是:

list_1 =  ['k', 'i', 't', 't', 'e', 'n']
list_2 =  ['s', 'i', 't', 't', 'i', 'n', 'g']

1
{'e', 'k'}

然后我试图找出其中的差异,使其等于3。我不知道如何使输出相似以将它们加在一起(用{'e','k'}加1等于3)的距离。

3 个答案:

答案 0 :(得分:1)

您快到了。像使用长度一样,使用len()计算new_list的长度:

difference = lengths + len(new_list)

答案 1 :(得分:0)

看起来您只需要更改此行:

difference = lengths + int(len(new_list))

这应该给您3个您想要的:)

答案 2 :(得分:0)

这称为Levenshtein距离。查阅this implementation作为进一步阅读。