量化字符串(python或其中的库)之间字符换位数量的快速方法

2024-10-03 23:17:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有两个字符串:

    x1 = "abcdef"
    x2 = "abdcfe"

    x1 == x2 # return False

我的目标是找出这两个字符相同的字符串之间有多少个换位。在上面的例子中,有2或4取决于您如何查看它(仍然是偶数,因此任何一种方式都可以)。另一种方法是对字符串中的字符进行排序,然后进行如下比较:

    x1s = ''.join(sorted(x1)) # 'abcdef'
    x2s = ''.join(sorted(x2)) # 'abcdef'

    x1s  == x2s # returns True of course

这样,就失去了换位的数量。我想不出普通的Levenshtein有多大帮助,因为除了可用的相同字符外,使用其他字符进行编辑的数量具有相同的权重。e、 g

    #pip install python-Levenshtein # you'll need this
    from Levenshtein import distance

    distance(x1, x2) # gives 3
    distance(x1s, x2s) # gives 0

有什么想法吗


Tags: 字符串数量return字符levenshteindistancesortedx1