【发布时间】:2017-12-22 13:28:33
【问题描述】:
我试图按顺序匹配两个字符串,直到第一个不匹配的字符,然后确定百分比完全匹配。我的代码是这样的:
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
python 中是否已经有任何内置方法可以更快地完成它?为简单起见,假设两个字符串的长度相同。
【问题讨论】:
-
最接近这个的是
difflib'sSequenceMatcher.get_matching_blocks: ideone.com/wlUVd9 -
字符串可以作为列表操作,不需要
list()他们。 -
最佳答案已在stackoverflow.com/questions/18715688/…的评论中提供