【问题标题】:Calculate the difference between 2 strings (Levenshtein distance)计算 2 个字符串之间的差异(Levenshtein 距离)
【发布时间】:2019-04-23 12:30:17
【问题描述】:

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

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

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) 的距离。

【问题讨论】:

    标签: python python-3.x list difference string-length


    【解决方案1】:

    看起来你只需要更改这一行:

    difference = lengths + int(len(new_list))
    

    这应该会给你 3 个你想要的 :)

    【讨论】:

      【解决方案2】:

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

      difference = lengths + len(new_list)
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-11
          • 2016-05-25
          • 1970-01-01
          • 1970-01-01
          • 2014-04-20
          • 2020-05-17
          • 1970-01-01
          相关资源
          最近更新 更多