1. ホーム
  2. python

[解決済み] 類似した)文字列の集合から接頭辞を決定する

2023-06-22 16:43:38

質問

以下のような文字列の集合があります。

my_prefix_what_ever
my_prefix_what_so_ever
my_prefix_doesnt_matter

私は単にこれらの文字列の最長の共通部分、ここでは接頭辞を見つけたいだけです。上記の場合、結果は

my_prefix_

文字列

my_prefix_what_ever
my_prefix_what_so_ever
my_doesnt_matter

はプレフィックス

my_

Pythonでプレフィックスを決定するための比較的楽な方法はありますか(各文字を手動で反復することなく)?

PS: Python 2.6.3を使っています。

どのように解決するのですか?

提供されたものを書き換えてはいけない。 os.path.commonprefix はまさにこれを行います。

リスト内のすべてのパスの接頭辞のうち、最も長いものを(1文字ずつ取って)返します。 を返す。リスト が空の場合は、空の文字列 ( '' ). これは,1文字ずつ処理するため,無効なパスを返すかもしれないことに 注意してください。 を返すかもしれないことに注意してください。

他の回答との比較のために、コードは以下のとおりです。

# Return the longest prefix of all list elements.
def commonprefix(m):
    "Given a list of pathnames, returns the longest common leading component"
    if not m: return ''
    s1 = min(m)
    s2 = max(m)
    for i, c in enumerate(s1):
        if c != s2[i]:
            return s1[:i]
    return s1