from itertools import combinations
str1="Bob's Bagel Shop"
str2="Fred's Bagel Store"
def combi(strs):
chars=''.join(strs.split())
lis=[]
for x in range(1,len(chars)):
for y in combinations(chars,x):
if ''.join(y) in chars:
lis.append(''.join(y))
return lis
lis1=combi(str1)
lis2=combi(str2)
print max(set(lis1).intersection(set(lis2)),key=len)
您可以使用
itetools.combinations
,然后使用集合的intersection
从两个字符串中找出匹配的字符:输出:
^{pr2}$有一个Python标准库类^{} 可以帮助您解决问题。下面是一个代码示例:
结果:
^{pr2}$结果表明,两个字符串都有相同的13个字符长度的子字符串(从第一个字符串的第三个字符开始,第二个字符串的第四个字符开始)。在
可以使用此匹配结果对象获取其字段作为值:
看到了吗
String similarity metrics in Python
或者检查simhash模块:
http://bibliographie-trac.ub.rub.de/browser/simhash.py
相关问题 更多 >
编程相关推荐