我需要比较两个几乎相同的字符串。然后使用python找到它们不同的点。有什么帮助吗?
例如两个字符串 a 和 b
A = 'oooooSooooooooooooooooooRoMooooooAooooooooooooooo'
B = 'oooooSooooooooooooooooooooMooooooAooooooooooooooo'
谢谢
我需要比较两个几乎相同的字符串。然后使用python找到它们不同的点。有什么帮助吗?
例如两个字符串 a 和 b
A = 'oooooSooooooooooooooooooRoMooooooAooooooooooooooo'
B = 'oooooSooooooooooooooooooooMooooooAooooooooooooooo'
谢谢
我建议使用difflib
每个标准 python 安装附带的。在那里你会找到方便的函数 ndiff。
>>> import difflib
>>> print "\n".join(difflib.ndiff([A], [B])),
- oooooSooooooooooooooooooRoMooooooAooooooooooooooo
? ^
+ oooooSooooooooooooooooooooMooooooAooooooooooooooo
? ^
>>>
对于相同大小的字符串,或者如果只有最短的长度很重要:
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)):
一些提示。
字符串有长度:
print(len(A))
您可以按索引访问单个字母:
print(A[0])
有一个范围函数可以让你生成整数序列:
for i in range(10):
print(i)
您可以检查两个字符是否相等:
'a' == 'a'
'a' == 'b'
1.将字符串拆分为数组A[]和B[]的字母
2.在循环内比较每个字母与相同的数组索引。
3.repeat循环0-(字符串的长度),循环内有一个计数。
4.计算比较条件变为假(当A[] == B[]变为假时)