如何使用 difflib 发现 Python 中的公共子字符串?

DDD
发布: 2024-10-26 20:15:29
原创
532 人浏览过

How to Discover Common Substrings in Python using difflib?

使用 Python 的 DiffLib 发现公共子字符串

比较两个字符串以识别它们的公共子字符串是字符串操作中的一项基本任务。本综合指南展示了基于 Python 的解决方案,利用 difflib 模块有效地执行此操作。

使用 difflib 的 Find_Longest_Match 方法

difflib 模块是 Python 标准库的一部分,提供了一个序列数组-比较实用程序。其中,find_longest_match 查找两个字符串之间的最长公共子字符串。

考虑两个字符串:

string1 = "apple pie available"
string2 = "come have some apple pies"
登录后复制

使用 find_longest_match 查找它们的公共子字符串:

from difflib import SequenceMatcher

match = SequenceMatcher(None, string1, string2).find_longest_match()

print(match)  # -> Match(a=0, b=15, size=9)
print(string1[match.a:match.a + match.size])  # -> apple pie
print(string2[match.b:match.b + match.size])  # -> apple pie
登录后复制

中在本示例中,输出为:

Match(a=0, b=15, size=9)
apple pie
apple pie
登录后复制

这表示最长的公共子字符串是“apple pie”,并且两个字符串共享此子字符串。

与 Python 版本的兼容性

对于 3.9 之前的 Python 版本,find_longest_match() 方法需要稍微不同的参数:

SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
登录后复制

以上是如何使用 difflib 发现 Python 中的公共子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板