ホームページ >バックエンド開発 >Python チュートリアル >difflib を使用して Python で共通の部分文字列を検出するにはどうすればよいですか?

difflib を使用して Python で共通の部分文字列を検出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-26 20:15:29547ブラウズ

How to Discover Common Substrings in Python using difflib?

Python の DiffLib を使用した共通部分文字列の検出

2 つの文字列を比較して共通部分文字列を識別することは、文字列操作の基本的なタスクです。この包括的なガイドでは、この操作を効率的に実行するために difflib モジュールを利用した Python ベースのソリューションを紹介します。

difflib の Find_Longest_Match メソッドを使用する

Python の標準ライブラリの一部である difflib モジュールは、シーケンスの配列を提供します。 -比較ユーティリティ。その中で、find_longest_match は 2 つの文字列の間で最も長い共通部分文字列を見つけます。

2 つの文字列を考えます:

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

Inこの例の出力は次のとおりです。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。