-3

我需要比较两个几乎相同的字符串。然后使用python找到它们不同的点。有什么帮助吗?

例如两个字符串 a 和 b

A = 'oooooSooooooooooooooooooRoMooooooAooooooooooooooo'
B = 'oooooSooooooooooooooooooooMooooooAooooooooooooooo'

谢谢

4

4 回答 4

6

我建议使用difflib每个标准 python 安装附带的。在那里你会找到方便的函数 ndiff

>>> import difflib

>>> print "\n".join(difflib.ndiff([A], [B])),
- oooooSooooooooooooooooooRoMooooooAooooooooooooooo
?                         ^

+ oooooSooooooooooooooooooooMooooooAooooooooooooooo
?                         ^
>>> 
于 2013-09-19T07:35:10.650 回答
2

对于相同大小的字符串,或者如果只有最短的长度很重要:

def diffindex(string1, string2):
    for i, (char1, char2) in enumerate(zip(string1, string2)):
        if char1 != char2:
            return i
    return -1

对于不同大小的字符串:

from itertools import zip_longest

现在用这一行替换相应的行:

for i, (char1, char2) in enumerate(zip_longest(string1, string2)):
于 2013-09-19T08:03:44.833 回答
1

一些提示。

字符串有长度:

print(len(A))

您可以按索引访问单个字母:

print(A[0])

有一个范围函数可以让你生成整数序列:

for i in range(10):
    print(i)

您可以检查两个字符是否相等:

 'a' == 'a'
 'a' == 'b'
于 2013-09-19T07:26:58.760 回答
0

1.将字符串拆分为数组A[]和B[]的字母

2.在循环内比较每个字母与相同的数组索引。

3.repeat循环0-(字符串的长度),循环内有一个计数。

4.计算比较条件变为假(当A[] == B[]变为假时)

于 2013-09-19T07:27:17.490 回答