【发布时间】:2021-07-02 18:08:22
【问题描述】:
我需要一些帮助来弄清楚如何打印两个字符串之间的差异。我需要输出来打印两个字符串之间的确切字符差异,有时不止一个字符。字符串示例:
str1 = "0074574-1"
str2 = "0074574+1"
这里的区别是"+" 在"-" 的位置。
另一个例子是
str1 = "27785-74-1"
str2 = "27785%F274-1"
在此示例中,"-" 被字符 "%F2" 替换。
我需要一个代码,其中包含搜索 str1 和 str2 之间差异的输出为:
diff_between_str1_str2 = "-"
或
diff_between_str1_str2 = "%F2"
有人可以指出我可以从哪里开始寻找的正确方向吗?
【问题讨论】:
-
有
difflib,特别是difflib.ndiff() -
除非您正在对两个等长字符串进行逐个字符的比较,您的示例表明您不是,否则这是一个涉及edit distance 概念的大话题。对此没有单一、完美的答案,因此您可能需要进行一些研究。有一些图书馆可以帮助解决这个问题。
-
这听起来像是 Levenshtein 差分算法的变体。这是我在上面找到的一篇好帖子:blog.paperspace.com/….