我想知道两个字符串在哪个索引处停止匹配。
例如:
a = "happy birthday"
b = "happybirthday"
字符串 a 和 b 在索引 5(基于 0)上停止匹配。
我知道我可以这样写我的方法:
def compare_2_string(a, b):
for x in xrange(len(a)):
if a[x] != b[x]:
return x
但是是否有更短、简洁或 pythonic 的方式来执行相同的逻辑?
请您参考如下方法:
使用difflib :
>>> s1 = "happy birthday"
>>> s2 = "happybirthday"
>>> s = difflib.SequenceMatcher(None, s1, s2)
>>> m = s.get_matching_blocks()
>>> print m[0][2]
5
(m 是一个元组列表,每个元组的第三个元素是匹配 block 的大小。在实际代码中,您需要确保确实存在匹配项等等)
