匹配两个字符串(char到char),直到第一次使用python不匹配

mua*_*aiz 4 python string-matching

我试图顺序匹配两个字符串,直到第一个不匹配的字符,然后确定完全匹配的百分比.我的代码是这样的:

def match(a, b):
    a, b = list(a), list(b)
    count = 0
    for i in range(len(a)):
        if (a[i]!= b[i]): break
        else: count = count + 1
    return count/len(a)

a = '354575368987943'
b = '354535368987000'
c = '354575368987000'
print(match(a,b)) # return 0.267
print(match(a,c)) # return 0.8
Run Code Online (Sandbox Code Playgroud)

python中是否有任何内置方法可以更快地完成它?为简单起见,假设两个字符串长度相同.

bog*_*anu 6

没有内置功能可以执行整个操作,但您可以使用内置功能来计算公共前缀:

import os
def match(a, b):
    common = os.path.commonprefix([a, b])
    return float(len(common))/len(a)    
Run Code Online (Sandbox Code Playgroud)