Python:re..find最长序列

Python:re..find最长序列,第1张

Python:re..find最长序列

扩展Ealdwulf的答案:

有关文档,请

re.findall
参见此处。

def getLongestSequenceSize(search_str, polymer_str):    matches = re.findall(r'(?:b%sbs?)+' % search_str, polymer_str)    longest_match = max(matches)    return longest_match.count(search_str)

这可以写成一行,但是以这种形式变得不太可读。

选择:

如果

polymer_str
容量很大,则使用它会提高内存效率
re.finditer
。您可以按照以下方式进行 *** 作:

def getLongestSequenceSize(search_str, polymer_str):    longest_match = ''    for match in re.finditer(r'(?:b%sbs?)+' % search_str, polymer_str):        if len(match.group(0)) > len(longest_match): longest_match = match.group(0)    return longest_match.count(search_str)

findall
和之间的最大区别
finditer
是,第一个返回一个列表对象,而第二个则迭代Match对象。而且,该
finditer
方法将稍微慢一些。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5662030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存