Python: 別の文字列に最も近い文字列を (リストから) 探す
2023-08-26 17:07:23
質問
例えば、私が
string
"Hello"
とリスト
words = ['hello', 'Hallo', 'hi', 'house', 'key', 'screen', 'hallo','question', 'Hallo', 'format']
どうすれば
n words
に最も近い
"Hello"
に最も近く、リスト中に存在する
words
?
この場合、次のようになります。
['hello', 'hallo', 'Hallo', 'hi', 'format'...]
つまり、リスト単語を近い単語から遠い単語へと並べ替えるという戦略です。
このようなことを考えました。
word = 'Hello'
for i, item in enumerate(words):
if lower(item) > lower(word):
...
を使用しますが、大きなリストでは非常に遅くなります。
アップデイト
difflib
は動作しますが、これも非常に遅いです。(
words list
には630000以上の単語が含まれています(ソートされており、1行に1つずつあります)。そのため、最も近い単語を検索するたびに、リストのチェックに5~7秒かかってしまいます。
どのように解決するのですか?
使用方法
difflib.get_close_matches
.
>>> words = ['hello', 'Hallo', 'hi', 'house', 'key', 'screen', 'hallo', 'question', 'format']
>>> difflib.get_close_matches('Hello', words)
['hello', 'Hallo', 'hallo']
この関数はデフォルトで3つ以下の最も近いマッチを返しますので、ドキュメントをご覧ください。
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] なぜlist.join(string)ではなくstring.join(list)なのでしょうか?
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] ある文字列が他の文字列と "StartsWith" しているかどうかを確認する方法は?
-
[解決済み] Pythonで文字列を反転させる
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] バブルソートの宿題
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Python 言語を決定するには?
-
[解決済み] 新しいpip backtrackingの実行時問題の解決