2017-10-15 24 views
1

私の質問のために私を許してください、おそらく最善の方法で尋ねられません!文字列のリスト内の部分文字列のセット

私は辞書に56のエントリのセットを持っています。キーは、辞書内の文字列で表される機能の組み合わせを示します。私は文字列の辞書をフィーチャに基づいてセットに細分し、リストに値を入れています。この時点まで私のコードは動作します。

現在、リスト内の各文字列を互いに比較して、最大共有文字列が何であるかを調べるのが難しいです。だから私のリストは次のようになります。

[nginana、ngina、ngali、ngali、ngalina、ngalina ngina]

だから、 'NG' は、私がこのような場合には後だものです。これまでのところ、私はLevinshteinとfuzzのようなもので文字列の距離を見つけることへの参照を見つけることができました。

これをコーディングする方法がありますか、または、ループ内にネストされたループを作成して、すべての可能な組み合わせを処理するつもりですか?私は、Python 3

+0

あなたが(それはそう前に、あなたの部分文字列で)最長共通部分の問題のバリエーションを実装しているように見えますを使用してい

。おそらく、これは使用のだろうか? https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Longest_common_substring#Python_3 – Raizuri

+1

私が間違っていた場合、私はそれを先に読んで修正しましたが、そのコードスニペットは私の場合、それは単語のどこかにあるかもしれません。私は、滑り始めのポイントを説明するためにループのために別のループを作成しなければならないと思っています... – Ant

答えて

-1
from os.path import commonprefix 
l = ['ngali','ngali','ngalina','ngalina','ngina','ngina','nginana'] 
commonprefix(l) 
+0

私は共通の接頭辞を探しているだけでなく、私は最も長い共通の文字列を見つけることができる必要がありますそれは言葉のどこにあるのか。別のセットでは、['ngalina'、 'nginana']のような単語を見て、 'na'を見つけなければならないでしょう。他の場合には、文字列は単語の中心にあります。 – Ant

+0

@Antあなたは 'ng'を望みました。少なくともdownvoteしない礼儀を持っている – skrubber

+0

私はdownvoteしなかった、私は誰がdownvotedかわからない。少なくとも私はそうは思わなかった、私はこれには新しいので、もし私がしたら、私は謝罪する。 – Ant

関連する問題