比较python中的两个字符串

时间:2013-09-19 07:16:38

标签: python string python-3.x

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

例如两个字符串a和b

A = 'oooooSooooooooooooooooooRoMooooooAooooooooooooooo'
B = 'oooooSooooooooooooooooooooMooooooAooooooooooooooo'

由于

4 个答案:

答案 0 :(得分:7)

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

>>> import difflib

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

+ oooooSooooooooooooooooooooMooooooAooooooooooooooo
?                         ^
>>> 

答案 1 :(得分: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)):

答案 2 :(得分:1)

一些提示。

字符串有长度:

print(len(A))

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

print(A[0])

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

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

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

 'a' == 'a'
 'a' == 'b'

答案 3 :(得分:0)

1.将字符串分成字母A []和B []

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

3.使用循环内的计数重复循环0-(字符串的长度)。

4.使比较条件的计数变为假(当A [] == B []变为假时