扩展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方法将稍微慢一些。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)