栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python:re..find最长序列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
方法将稍微慢一些。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659963.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号